[OpenSIPS-Users] Help regarding Opensips Proxy
Mihai
m at mokalife.ro
Thu Oct 22 11:18:06 EST 2020
Hi Razvan,
By agent, I am referring the softphone (zoiper or microsip). I will look
into "Path" or "Mid registar".
I still need to use the rtpproxy module, correct for all of this ?
On Thu, Oct 22, 2020 at 11:57 AM Răzvan Crainea <razvan at opensips.org> wrote:
> What does "connect an agent" mean? Register on a specific asterisk
> server? If so, you should be using the Path module[1] to add OpenSIPS as
> an extra hop between the agent and Asterisk. An alternative is the Mid
> registrar module[2], which can itself store the location of the agent,
> and relay calls to it.
>
> [1] https://opensips.org/docs/modules/3.1.x/path.html
> [2] https://opensips.org/docs/modules/3.1.x/mid_registrar.html
>
> Răzvan Crainea
> OpenSIPS Core Developer
> http://www.opensips-solutions.com
>
> On 10/22/20 11:37 AM, Mihai wrote:
> > Any hints about this?
> >
> > On Tue, Sep 29, 2020 at 4:46 PM Mihai <m at mokalife.ro
> > <mailto:m at mokalife.ro>> wrote:
> >
> > Hi all,
> >
> > I need some help on getting to work my scenario:
> >
> > I have 3 asterisk servers, and, every agent is connecting to which
> > server they need by contacting the PublicIP. (the problem is that I
> > need to reuse the IP address on others servers) . I want if is
> > possible to use Opensips as proxy, so that agents can connect to
> > those asterisk servers by virtualhost (example.
> > asterisk1.behindproxy.example, asterisk2.behindproxy.example ).
> > Basically I want to proxy everything thru OpenSIPs.
> >
> >
> > I am using centos 7 with the following packages installed:
> > opensips-dialplan-module-3.1.0-1.el7.x86_64
> > opensips-yum-releases-3.1-5.el7.noarch
> > opensips-b2bua-module-3.1.0-1.el7.x86_64
> > opensips-regex-module-3.1.0-1.el7.x86_64
> > opensips-mysql-module-3.1.0-1.el7.x86_64
> > opensips-3.1.0-1.el7.x86_64
> >
> >
> >
> > What I tried so far is this config, it dose send my users to
> > required Asterisk servers, but on the asterisk server I don't see
> > their IP ( i see the IP of the proxy) and that's it ....
> > the dispatcher list is this from mysql:
> >
> > Any help is apreciated.
> >
> +----+-------+----------------+--------+-------+--------+----------+-------+-------------+
> > | id | setid | destination | socket | state | weight | priority |
> > attrs | description |
> >
> +----+-------+----------------+--------+-------+--------+----------+-------+-------------+
> > | 1 | 1 | sip:172.16.0.2 | NULL | 2 | 1 | 0
> > | | sip1 |
> > | 2 | 2 | sip:172.16.0.3 | NULL | 2 | 1 | 0
> > | | sip2 |
> > | 3 | 3 | sip:172.16.0.4 | NULL | 2 | 1 | 0
> > | | sip3 |
> >
> +----+-------+----------------+--------+-------+--------+----------+-------+-------------+
> >
> >
> > ####### Global Parameters #########
> > #debug_mode=yes
> > log_level=4
> > log_stderror=no
> > log_facility=LOG_LOCAL0
> > udp_workers=4
> > socket=udp:0.0.0.0:5060 <http://0.0.0.0:5060>
> > ####### Modules Section ########
> >
> > #set module path
> > mpath="/usr/lib64/opensips/modules"
> >
> > #### SIGNALING module
> > loadmodule "signaling.so"
> >
> > loadmodule "db_mysql.so"
> > loadmodule "db_text.so"
> >
> > #### StateLess module
> > loadmodule "sl.so"
> >
> > #### Transaction Module
> > loadmodule "tm.so"
> > modparam("tm", "fr_timeout", 5)
> > modparam("tm", "fr_inv_timeout", 30)
> > modparam("tm", "restart_fr_on_each_reply", 0)
> > modparam("tm", "onreply_avp_mode", 1)
> >
> > #### Record Route Module
> > loadmodule "rr.so"
> > modparam("rr", "append_fromtag", 0)
> >
> > #### MAX ForWarD module
> > loadmodule "maxfwd.so"
> >
> > #### SIP MSG OPerationS module
> > loadmodule "sipmsgops.so"
> >
> > #### FIFO Management Interface
> > loadmodule "mi_fifo.so"
> > modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")
> > modparam("mi_fifo", "fifo_mode", 0666)
> >
> > #### USeR LOCation module
> > loadmodule "usrloc.so"
> > modparam("usrloc", "nat_bflag", "NAT")
> > modparam("usrloc", "working_mode_preset", "single-instance-no-db")
> >
> > #### REGISTRAR module
> > loadmodule "registrar.so"
> > modparam("registrar", "retry_after", 30)
> >
> > #### DIALOG module
> > loadmodule "dialog.so"
> > modparam("dialog", "enable_stats", 0)
> > modparam("dialog", "hash_size", 1024)
> > modparam("dialog", "log_profile_hash_size", 4)
> > modparam("dialog", "default_timeout", 21600) # 6h
> > modparam("dialog", "dlg_extra_hdrs", "Hint: credit expired\r\n")
> > modparam("dialog", "dlg_match_mode", 0)
> > modparam("dialog", "options_ping_interval", 20)
> > modparam("dialog", "reinvite_ping_interval", 600)
> >
> > ### nat_traversal
> > loadmodule "nat_traversal.so"
> > modparam("nat_traversal", "keepalive_interval", 60)
> > modparam("nat_traversal", "keepalive_method", "OPTIONS")
> > modparam("nat_traversal", "keepalive_from",
> > "sip:keepalive at opensips.proxy")
> > modparam("nat_traversal", "keepalive_extra_headers", "User-Agent:
> > OpenSIPS\r\nX-NAT: yes\r\n")
> > modparam("nat_traversal", "keepalive_state_file",
> > "/var/run/opensips/keepalive_state")
> >
> >
> >
> ######################################################################
> > ## Dispatcher Module Parameters
> >
> ######################################################################
> > loadmodule "dispatcher.so"
> > #modparam("dispatcher", "list_file", "/etc/opensips/dispatcher.list")
> > modparam("dispatcher", "db_url",
> > "mysql://opensips:opensipsrw@localhost/opensips")
> > modparam("dispatcher", "dst_avp", "$avp(271)")
> > modparam("dispatcher", "attrs_avp", "$avp(272)")
> > modparam("dispatcher", "grp_avp", "$avp(273)")
> > modparam("dispatcher", "cnt_avp", "$avp(274)")
> > modparam("dispatcher", "hash_pvar", "$avp(273)")
> > modparam("dispatcher", "ds_ping_method", "OPTIONS")
> > modparam("dispatcher", "ds_ping_from", "sip:sipcheck at opensips.proxy
> ")
> > modparam("dispatcher", "ds_ping_interval", 10)
> > modparam("dispatcher", "ds_probing_threshhold", 3)
> > modparam("dispatcher", "ds_probing_mode", 1)
> > modparam("dispatcher", "options_reply_codes", "501,403,404,400,200")
> >
> > loadmodule "proto_udp.so"
> >
> > ####### Routing Logic ########
> > # main request routing logic
> >
> > route{
> >
> > if (!mf_process_maxfwd_header(10)) {
> > send_reply(483,"Max hops reached");
> > exit;
> > }
> >
> > if (has_totag()) {
> >
> > # handle hop-by-hop ACK (no routing required)
> > if ( is_method("ACK") && t_check_trans() ) {
> > t_relay();
> > exit;
> > }
> >
> > # sequential request within a dialog should
> > # take the path determined by record-routing
> > if ( !loose_route() ) {
> > # we do record-routing for all our traffic, so we should not
> > # receive any sequential requests without Route hdr.
> > send_reply(404,"Not here");
> > exit;
> > }
> >
> > # route it out to whatever destination was set by loose_route()
> > # in $du (destination URI).
> > route(relay);
> > exit;
> > }
> >
> > # CANCEL processing
> > if (is_method("CANCEL")) {
> > if (t_check_trans())
> > t_relay();
> > exit;
> > }
> >
> > # absorb retransmissions, but do not create transaction
> > t_check_trans();
> >
> > if ( !(is_method("REGISTER") ) ) {
> > if (is_myself("$fd")) {
> > # do nothing
> > } else {
> > # if caller is not local, then called number must be local
> > if (!is_myself("$rd")) {
> > send_reply(403,"Relay Forbidden On: $si ");
> > #send_reply(200,"Relay $fd ");
> > exit;
> > }
> > }
> >
> > }
> >
> > # preloaded route checking
> > if (loose_route()) {
> > xlog("L_ERR",
> > "Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");
> > if (!is_method("ACK"))
> > send_reply(403,"Preload Route denied");
> > exit;
> > }
> >
> > # record routing
> > if (!is_method("REGISTER|MESSAGE"))
> > record_route();
> >
> > if (!is_myself("$rd")) {
> > append_hf("P-hint: outbound\r\n");
> > route(relay);
> > }
> >
> > # requests for my domain
> > if (is_method("PUBLISH|SUBSCRIBE")) {
> > send_reply(503, "Service Unavailable");
> > exit;
> > }
> >
> > if (is_method("REGISTER")) {
> > if (!save("location"))
> > sl_reply_error();
> >
> > exit;
> > }
> >
> > if ($rU==NULL) {
> > # request with no Username in RURI
> > send_reply(484,"Address Incomplete");
> > exit;
> > }
> >
> > # do lookup with method filtering
> > if (!lookup("location","m")) {
> > t_reply(404, "Not Found");
> > exit;
> > }
> >
> > route(relay);
> > }
> >
> >
> > route[relay] {
> > # for INVITEs enable some additional helper routes
> > if (is_method("INVITE")) {
> > t_on_branch("per_branch_ops");
> > t_on_reply("handle_nat");
> > t_on_failure("missed_call");
> > }
> >
> > if (!t_relay()) {
> > send_reply(500,"Internal Error");
> > }
> > exit;
> >
> >
> > switch ($fd){
> > case "asterisk1.example.com <http://asterisk1.example.com>":
> > if (!ds_select_dst(1, 0)) {
> > log("ERROR: no active destinations found!\n");
> > send_reply(503, "Service Unavailable");
> > exit;
> > }
> > ds_select_dst(1, 8, "ud", "default", 1);
> > break;
> > case "asterisk1.example.com <http://asterisk1.example.com>":
> > if (!ds_select_dst(2, 0)) {
> > log("ERROR: no active destinations found!\n");
> > send_reply(503, "Service Unavailable");
> > exit;
> > }
> > ds_select_dst(2, 8, "ud", "default", 1);
> > break;
> > case "asterisk1.example.com <http://asterisk1.example.com>":
> > if (!ds_select_dst(3, 0)) {
> > log("ERROR: no active destinations found!\n");
> > send_reply(503, "Service Unavailable");
> > exit;
> > }
> > ds_select_dst(3, 8, "ud", "default", 1);
> > log("---- flag value is $dd -- branch $fd \n");
> > break;
> > default:
> > log("unknow destination");
> > exit;
> > }
> > }
> >
> >
> >
> >
> > branch_route[per_branch_ops] {
> > xlog("new branch at $ru\n");
> > }
> >
> >
> > onreply_route[handle_nat] {
> > xlog("incoming reply\n");
> > }
> >
> >
> > failure_route[missed_call] {
> > if (t_was_cancelled()) {
> > exit;
> > }
> > }
> >
> >
> > _______________________________________________
> > Users mailing list
> > Users at lists.opensips.org
> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20201022/1587e84c/attachment-0001.html>
More information about the Users
mailing list