<div dir="ltr">Hi can some one help me . I am using kamailio 4.1.3  and having one way audio issue.<div><br></div><div>Scenario is </div><div><br></div><div>Pjsip 2.0 based UA (private IP)------->Router(publicIP)--------> Kamailio (with RTP proxy)-----------> Third Party_Sip Server ------>PSTN</div>
<div><br></div><div>UA is registering fine with sip server but when i make  a call  they can hear but i can not hear the other party .</div><div><br></div><div>What i found is in SDP first c=IN  is private ip of UA and second c=IN   is public ip of UA  i dont know if this is the  cause</div>
<div><br></div><div>When I trace  the call on sip server , sip server is sending RTP to UA private ip so </div><div><br></div><div>it is not reaching kamailio back to forward to UA .</div><div><br></div><div>I am attaching the kamailio configuration file as well as SIP/SDP trace</div>
<div><br></div><div><br></div><div>user agent private ip : 192.168.1.4</div><div>User agent public ip : 61.61.61.61</div><div>Kamailio IP : 81.81.81.81</div><div>Sip Server IP: 71.71.71.71</div><div><br></div><div>(* ip addresses are not actual ips)</div>
<div><br></div><div><br></div><div>Please reply with detailed  instructions to fix this isue</div><div><br></div><div>config file:</div><div><br></div><div><br></div><div><div>#!KAMAILIO</div><div>#</div><div># Kamailio (OpenSER) SIP Server v4.1 - default configuration script</div>
<div>#     - web: <a href="http://www.kamailio.org">http://www.kamailio.org</a></div><div>#     - git: <a href="http://sip-router.org">http://sip-router.org</a></div><div>#</div><div># Direct your questions about this file to: <<a href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a>></div>
<div>#</div><div># Refer to the Core CookBook at <a href="http://www.kamailio.org/wiki/">http://www.kamailio.org/wiki/</a></div><div># for an explanation of possible statements, functions and parameters.</div><div>#</div>
<div># Several features can be enabled using '#!define WITH_FEATURE' directives:</div><div>#</div><div># *** To run in debug mode:</div><div>#     - define WITH_DEBUG</div><div>#</div><div># *** To enable mysql:</div>
<div>#     - define WITH_MYSQL</div><div>#</div><div># *** To enable authentication execute:</div><div>#     - enable mysql</div><div>#     - define WITH_AUTH</div><div>#     - add users using 'kamctl'</div><div>#</div>
<div># *** To enable IP authentication execute:</div><div>#     - enable mysql</div><div>#     - enable authentication</div><div>#     - define WITH_IPAUTH</div><div>#     - add IP addresses with group id '1' to 'address' table</div>
<div>#</div><div># *** To enable persistent user location execute:</div><div>#     - enable mysql</div><div>#     - define WITH_USRLOCDB</div><div>#</div><div># *** To enable presence server execute:</div><div>#     - enable mysql</div>
<div>#     - define WITH_PRESENCE</div><div>#</div><div>#!define WITH_NAT</div><div># *** To enable nat traversal execute:</div><div>#     - define WITH_NAT</div><div>#     - install RTPProxy: <a href="http://www.rtpproxy.org">http://www.rtpproxy.org</a></div>
<div>#     - start RTPProxy:</div><div>#        rtpproxy -l _your_public_ip_ -s udp:localhost:7722</div><div>#</div><div># *** To enable PSTN gateway routing execute:</div><div>#     - define WITH_PSTN</div><div>#     - set the value of pstn.gw_ip</div>
<div>#     - check route[PSTN] for regexp routing condition</div><div>#</div><div># *** To enable database aliases lookup execute:</div><div>#     - enable mysql</div><div>#     - define WITH_ALIASDB</div><div>#</div><div>
# *** To enable speed dial lookup execute:</div><div>#     - enable mysql</div><div>#     - define WITH_SPEEDDIAL</div><div>#</div><div># *** To enable multi-domain support execute:</div><div>#     - enable mysql</div><div>
#     - define WITH_MULTIDOMAIN</div><div>#</div><div># *** To enable TLS support execute:</div><div>#     - adjust CFGDIR/tls.cfg as needed</div><div>#     - define WITH_TLS</div><div>#</div><div># *** To enable XMLRPC support execute:</div>
<div>#     - define WITH_XMLRPC</div><div>#     - adjust route[XMLRPC] for access policy</div><div>#</div><div># *** To enable anti-flood detection execute:</div><div>#     - adjust pike and htable=>ipban settings as needed (default is</div>
<div>#       block if more than 16 requests in 2 seconds and ban for 300 seconds)</div><div>#     - define WITH_ANTIFLOOD</div><div>#</div><div># *** To block 3XX redirect replies execute:</div><div>#     - define WITH_BLOCK3XX</div>
<div>#</div><div># *** To enable VoiceMail routing execute:</div><div>#     - define WITH_VOICEMAIL</div><div>#     - set the value of voicemail.srv_ip</div><div>#     - adjust the value of voicemail.srv_port</div><div>#</div>
<div># *** To enhance accounting execute:</div><div>#     - enable mysql</div><div>#     - define WITH_ACCDB</div><div>#     - add following columns to database</div><div>#!ifdef ACCDB_COMMENT</div><div>  ALTER TABLE acc ADD COLUMN src_user VARCHAR(64) NOT NULL DEFAULT '';</div>
<div>  ALTER TABLE acc ADD COLUMN src_domain VARCHAR(128) NOT NULL DEFAULT '';</div><div>  ALTER TABLE acc ADD COLUMN src_ip varchar(64) NOT NULL default '';</div><div>  ALTER TABLE acc ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT '';</div>
<div>  ALTER TABLE acc ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT '';</div><div>  ALTER TABLE acc ADD COLUMN dst_domain VARCHAR(128) NOT NULL DEFAULT '';</div><div>  ALTER TABLE missed_calls ADD COLUMN src_user VARCHAR(64) NOT NULL DEFAULT '';</div>
<div>  ALTER TABLE missed_calls ADD COLUMN src_domain VARCHAR(128) NOT NULL DEFAULT '                                                                             ';</div><div>  ALTER TABLE missed_calls ADD COLUMN src_ip varchar(64) NOT NULL default '';</div>
<div>  ALTER TABLE missed_calls ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT '';</div><div>  ALTER TABLE missed_calls ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT '';</div><div>  ALTER TABLE missed_calls ADD COLUMN dst_domain VARCHAR(128) NOT NULL DEFAULT '                                                                             ';</div>
<div>#!endif</div><div><br></div><div>####### Include Local Config If Exists #########</div><div>import_file "kamailio-local.cfg"</div><div><br></div><div>####### Defined Values #########</div><div><br></div><div>
# *** Value defines - IDs used later in config</div><div>#!ifdef WITH_MYSQL</div><div># - database URL - used to connect to database server by modules such</div><div>#       as: auth_db, acc, usrloc, a.s.o.</div><div>#!ifndef DBURL</div>
<div>#!define DBURL "mysql://kamailio:kamailiorw@localhost/kamailio"</div><div>#!endif</div><div>#!endif</div><div>#!ifdef WITH_MULTIDOMAIN</div><div># - the value for 'use_domain' parameters</div><div>#!define MULTIDOMAIN 1</div>
<div>#!else</div><div>#!define MULTIDOMAIN 0</div><div>#!endif</div><div><br></div><div># - flags</div><div>#   FLT_ - per transaction (message) flags</div><div>#       FLB_ - per branch flags</div><div>#!define FLT_ACC 1</div>
<div>#!define FLT_ACCMISSED 2</div><div>#!define FLT_ACCFAILED 3</div><div>#!define FLT_NATS 5</div><div><br></div><div>#!define FLB_NATB 6</div><div>#!define FLB_NATSIPPING 7</div><div>####### Global Parameters #########</div>
<div>### LOG Levels: 3=DBG, 2=INFO, 1=NOTICE, 0=WARN, -1=ERR</div><div>#!ifdef WITH_DEBUG</div><div>debug=2</div><div>log_stderror=no</div><div>#!else</div><div>debug=3</div><div>log_stderror=no</div><div>#!endif</div><div>
<br></div><div>memdbg=1</div><div>memlog=1</div><div><br></div><div>log_facility=LOG_LOCAL0</div><div><br></div><div>fork=yes</div><div>children=4</div><div><br></div><div>/* uncomment the next line to disable TCP (default on) */</div>
<div>disable_tcp=yes</div><div><br></div><div>/* uncomment the next line to disable the auto discovery of local aliases</div><div>   based on reverse DNS on IPs (default on) */</div><div>#auto_aliases=no</div><div><br></div>
<div>/* add local domain aliases */</div><div>#alias="<a href="http://sip.mydomain.com">sip.mydomain.com</a>"</div><div><br></div><div>/* uncomment and configure the following line if you want Kamailio to</div><div>
   bind on a specific interface/port/proto (default bind on all available) */</div><div>#listen=udp:<a href="http://10.0.0.10:5060">10.0.0.10:5060</a></div><div><br></div><div>/* port to listen to</div><div> * - can be specified more than once if needed to listen on many ports */</div>
<div>port=7878</div><div><br></div><div>#!ifdef WITH_TLS</div><div>enable_tls=yes</div><div>#!endif</div><div><br></div><div># life time of TCP connection when there is no traffic</div><div># - a bit higher than registration expires to cope with UA behind NAT</div>
<div>tcp_connection_lifetime=3605</div><div><br></div><div>####### Custom Parameters #########</div><div><br></div><div># These parameters can be modified runtime via RPC interface</div><div># - see the documentation of 'cfg_rpc' module.</div>
<div>#</div><div># Format: <a href="http://group.id">group.id</a> = value 'desc' description</div><div># Access: $sel(<a href="http://cfg_get.group.id">cfg_get.group.id</a>) or @<a href="http://cfg_get.group.id">cfg_get.group.id</a></div>
<div>#</div><div><br></div><div>#!ifdef WITH_PSTN</div><div># PSTN GW Routing</div><div>#</div><div># - pstn.gw_ip: valid IP or hostname as string value, example:</div><div># pstn.gw_ip = "10.0.0.101" desc "My PSTN GW Address"</div>
<div>#</div><div># - by default is empty to avoid misrouting</div><div>pstn.gw_ip = "" desc "PSTN GW Address"</div><div>pstn.gw_port = "" desc "PSTN GW Port"</div><div>#!endif</div>
<div><br></div><div>#!ifdef WITH_VOICEMAIL</div><div># VoiceMail Routing on offline, busy or no answer</div><div>#</div><div># - by default Voicemail server IP is empty to avoid misrouting</div><div>voicemail.srv_ip = "" desc "VoiceMail IP Address"</div>
<div>voicemail.srv_port = "5060" desc "VoiceMail Port"</div><div>#!endif</div><div><br></div><div>####### Modules Section ########</div><div><br></div><div># set paths to location of modules (to sources or installation folders)</div>
<div>#!ifdef WITH_SRCPATH</div><div>mpath="modules/"</div><div>#!else</div><div>mpath="/usr/local/lib/kamailio/modules/"</div><div>#!endif</div><div><br></div><div>#!ifdef WITH_MYSQL</div><div>loadmodule "db_mysql.so"</div>
<div>#!endif</div><div><br></div><div>loadmodule "mi_fifo.so"</div><div>loadmodule "kex.so"</div><div>loadmodule "corex.so"</div><div>loadmodule "tm.so"</div><div>loadmodule "tmx.so"</div>
<div>loadmodule "sl.so"</div><div>loadmodule "rr.so"</div><div>loadmodule "pv.so"</div><div>loadmodule "maxfwd.so"</div><div>loadmodule "usrloc.so"</div><div>loadmodule "registrar.so"</div>
<div>loadmodule "textops.so"</div><div>loadmodule "siputils.so"</div><div>loadmodule "xlog.so"</div><div>loadmodule "sanity.so"</div><div>loadmodule "ctl.so"</div><div>loadmodule "cfg_rpc.so"</div>
<div>loadmodule "mi_rpc.so"</div><div>loadmodule "acc.so"</div><div><br></div><div>#!ifdef WITH_AUTH</div><div>loadmodule "auth.so"</div><div>loadmodule "auth_db.so"</div><div>#!ifdef WITH_IPAUTH</div>
<div>loadmodule "permissions.so"</div><div>#!endif</div><div>#!endif</div><div><br></div><div>#!ifdef WITH_ALIASDB</div><div>loadmodule "alias_db.so"</div><div>#!endif</div><div><br></div><div>#!ifdef WITH_SPEEDDIAL</div>
<div>loadmodule "speeddial.so"</div><div>#!endif</div><div><br></div><div>#!ifdef WITH_MULTIDOMAIN</div><div>loadmodule "domain.so"</div><div>#!endif</div><div><br></div><div>#!ifdef WITH_PRESENCE</div>
<div>loadmodule "presence.so"</div><div>loadmodule "presence_xml.so"</div><div>#!endif</div><div><br></div><div>#!ifdef WITH_NAT</div><div>loadmodule "nathelper.so"</div><div>loadmodule "rtpproxy.so"</div>
<div>loadmodule "nat_traversal.so"</div><div>#!endif</div><div><br></div><div>#!ifdef WITH_TLS</div><div>loadmodule "tls.so"</div><div>#!endif</div><div><br></div><div>#!ifdef WITH_ANTIFLOOD</div><div>
loadmodule "htable.so"</div><div>loadmodule "pike.so"</div><div>#!endif</div><div><br></div><div>#!ifdef WITH_XMLRPC</div><div>loadmodule "xmlrpc.so"</div><div>#!endif</div><div><br></div><div>
#!ifdef WITH_DEBUG</div><div>loadmodule "debugger.so"</div><div>#!endif</div><div><br></div><div># ----------------- setting module-specific parameters ---------------</div><div><br></div><div><br></div><div># ----- mi_fifo params -----</div>
<div>modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo")</div><div><br></div><div><br></div><div># ----- tm params -----</div><div># auto-discard branches from previous serial forking leg</div>
<div>modparam("tm", "failure_reply_mode", 3)</div><div># default retransmission timeout: 30sec</div><div>modparam("tm", "fr_timer", 30000)</div><div># default invite retransmission timeout after 1xx: 120sec</div>
<div>modparam("tm", "fr_inv_timer", 120000)</div><div><br></div><div><br></div><div># ----- rr params -----</div><div># add value to ;lr param to cope with most of the UAs</div><div>modparam("rr", "enable_full_lr", 1)</div>
<div># do not append from tag to the RR (no need for this script)</div><div>modparam("rr", "append_fromtag", 0)</div><div><br></div><div><br></div><div># ----- registrar params -----</div><div>modparam("registrar", "method_filtering", 1)</div>
<div>/* uncomment the next line to disable parallel forking via location */</div><div># modparam("registrar", "append_branches", 0)</div><div>/* uncomment the next line not to allow more than 10 contacts per AOR */</div>
<div>#modparam("registrar", "max_contacts", 10)</div><div># max value for expires of registrations</div><div>modparam("registrar", "max_expires", 3600)</div><div># set it to 1 to enable GRUU</div>
<div>modparam("registrar", "gruu_enabled", 0)</div><div><br></div><div><br></div><div># ----- acc params -----</div><div>/* what special events should be accounted ? */</div><div>modparam("acc", "early_media", 0)</div>
<div>modparam("acc", "report_ack", 0)</div><div>modparam("acc", "report_cancels", 0)</div><div>/* by default ww do not adjust the direct of the sequential requests.</div><div>   if you enable this parameter, be sure the enable "append_fromtag"</div>
<div>   in "rr" module */</div><div>modparam("acc", "detect_direction", 0)</div><div>/* account triggers (flags) */</div><div>modparam("acc", "log_flag", FLT_ACC)</div><div>
modparam("acc", "log_missed_flag", FLT_ACCMISSED)</div><div>modparam("acc", "log_extra",</div><div>        "src_user=$fU;src_domain=$fd;src_ip=$si;"</div><div>        "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")</div>
<div>modparam("acc", "failed_transaction_flag", FLT_ACCFAILED)</div><div>/* enhanced DB accounting */</div><div>#!ifdef WITH_ACCDB</div><div>modparam("acc", "db_flag", FLT_ACC)</div>
<div>modparam("acc", "db_missed_flag", FLT_ACCMISSED)</div><div>modparam("acc", "db_url", DBURL)</div><div>modparam("acc", "db_extra",</div><div>        "src_user=$fU;src_domain=$fd;src_ip=$si;"</div>
<div>        "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")</div><div>#!endif</div><div><br></div><div><br></div><div># ----- usrloc params -----</div><div>/* enable DB persistency for location entries */</div><div>
#!ifdef WITH_USRLOCDB</div><div>modparam("usrloc", "db_url", DBURL)</div><div>modparam("usrloc", "db_mode", 2)</div><div>modparam("usrloc", "use_domain", MULTIDOMAIN)</div>
<div>#!endif</div><div><br></div><div><br></div><div># ----- auth_db params -----</div><div>#!ifdef WITH_AUTH</div><div>modparam("auth_db", "db_url", DBURL)</div><div>modparam("auth_db", "calculate_ha1", yes)</div>
<div>modparam("auth_db", "password_column", "password")</div><div>modparam("auth_db", "load_credentials", "")</div><div>modparam("auth_db", "use_domain", MULTIDOMAIN)</div>
<div><br></div><div># ----- permissions params -----</div><div>#!ifdef WITH_IPAUTH</div><div>modparam("permissions", "db_url", DBURL)</div><div>modparam("permissions", "db_mode", 1)</div>
<div>#!endif</div><div><br></div><div>#!endif</div><div><br></div><div><br></div><div># ----- alias_db params -----</div><div>#!ifdef WITH_ALIASDB</div><div>modparam("alias_db", "db_url", DBURL)</div><div>
modparam("alias_db", "use_domain", MULTIDOMAIN)</div><div>#!endif</div><div><br></div><div><br></div><div># ----- speeddial params -----</div><div>#!ifdef WITH_SPEEDDIAL</div><div>modparam("speeddial", "db_url", DBURL)</div>
<div>modparam("speeddial", "use_domain", MULTIDOMAIN)</div><div>#!endif</div><div><br></div><div><br></div><div># ----- domain params -----</div><div>#!ifdef WITH_MULTIDOMAIN</div><div>modparam("domain", "db_url", DBURL)</div>
<div># register callback to match myself condition with domains list</div><div>modparam("domain", "register_myself", 1)</div><div>#!endif</div><div><br></div><div><br></div><div>#!ifdef WITH_PRESENCE</div>
<div># ----- presence params -----</div><div>modparam("presence", "db_url", DBURL)</div><div><br></div><div># ----- presence_xml params -----</div><div>modparam("presence_xml", "db_url", DBURL)</div>
<div>modparam("presence_xml", "force_active", 1)</div><div>#!endif</div><div><br></div><div><br></div><div>#!ifdef WITH_NAT</div><div># ----- rtpproxy params -----</div><div>modparam("rtpproxy", "rtpproxy_sock", "udp:<a href="http://127.0.0.1:7722">127.0.0.1:7722</a>")</div>
<div><br></div><div># ----- nathelper params -----</div><div>modparam("nathelper", "natping_interval", 30)</div><div>modparam("nathelper", "ping_nated_only", 1)</div><div>modparam("nathelper", "sipping_bflag", FLB_NATSIPPING)</div>
<div>modparam("nathelper", "sipping_from", "<a href="mailto:sip%3Apinger@kamailio.org">sip:pinger@kamailio.org</a>")</div><div><br></div><div># params needed for NAT traversal in other modules</div>
<div>modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")</div><div>modparam("usrloc", "nat_bflag", FLB_NATB)</div><div>#!endif</div><div><br></div><div><br></div>
<div>#!ifdef WITH_TLS</div><div># ----- tls params -----</div><div>modparam("tls", "config", "/usr/local/etc/kamailio/tls.cfg")</div><div>#!endif</div><div><br></div><div>#!ifdef WITH_ANTIFLOOD</div>
<div># ----- pike params -----</div><div>modparam("pike", "sampling_time_unit", 2)</div><div>modparam("pike", "reqs_density_per_unit", 16)</div><div>modparam("pike", "remove_latency", 4)</div>
<div><br></div><div># ----- htable params -----</div><div># ip ban htable with autoexpire after 5 minutes</div><div>modparam("htable", "htable", "ipban=>size=8;autoexpire=300;")</div><div>
#!endif</div><div><br></div><div>#!ifdef WITH_XMLRPC</div><div># ----- xmlrpc params -----</div><div>modparam("xmlrpc", "route", "XMLRPC");</div><div>modparam("xmlrpc", "url_match", "^/RPC")</div>
<div>#!endif</div><div><br></div><div>#!ifdef WITH_DEBUG</div><div># ----- debugger params -----</div><div>modparam("debugger", "cfgtrace", 7)</div><div>#!endif</div><div><br></div><div>####### Routing Logic ########</div>
<div><br></div><div><br></div><div># Main SIP request routing logic</div><div># - processing of any incoming SIP request starts with this route</div><div># - note: this is the same as route { ... }</div><div>request_route {</div>
<div><br></div><div>        # per request initial checks</div><div>        route(REQINIT);</div><div><br></div><div>        # NAT detection</div><div>        route(NATDETECT);</div><div><br></div><div>        # CANCEL processing</div>
<div>        if (is_method("CANCEL"))</div><div>        {</div><div>                if (t_check_trans()) {</div><div>                        route(RELAY);</div><div>                }</div><div>                exit;</div>
<div>        }</div><div><br></div><div>        # handle requests within SIP dialogs</div><div>        route(WITHINDLG);</div><div><br></div><div>        ### only initial requests (no To tag)</div><div><br></div><div>        t_check_trans();</div>
<div><br></div><div>        # authentication</div><div>        # Below line commented by test-MATHUR as PC-2-PC calls are not getting                                                                              through</div>
<div>        #route(AUTH);</div><div><br></div><div>        # record routing for dialog forming requests (in case they are routed)</div><div>        # - remove preloaded route headers</div><div>        remove_hf("Route");</div>
<div>        if (is_method("INVITE|SUBSCRIBE"))</div><div>                record_route();</div><div><br></div><div>        # account only INVITEs</div><div>        if (is_method("INVITE"))</div><div>        {</div>
<div>                sl_send_reply("100", "Trying");</div><div>                setflag(FLT_ACC); # do accounting</div><div>        }</div><div><br></div><div>        # dispatch requests to foreign domains</div>
<div>        route(SIPOUT);</div><div><br></div><div>        ### requests for my local domains</div><div><br></div><div>        # handle presence related requests</div><div>        route(PRESENCE);</div><div><br></div><div>
        # handle registrations</div><div>        route(REGISTRAR);</div><div><br></div><div>        if ($rU==$null)</div><div>        {</div><div>                # request with no Username in RURI</div><div>                sl_send_reply("484","Address Incomplete");</div>
<div>                exit;</div><div>        }</div><div><br></div><div>        # dispatch destinations to PSTN</div><div>        route(PSTN);</div><div><br></div><div>        # user location service</div><div>        route(LOCATION);</div>
<div>}</div><div><br></div><div><br></div><div>route[RELAY] {</div><div><br></div><div>        # enable additional event routes for forwarded requests</div><div>        # - serial forking, RTP relaying handling, a.s.o.</div>
<div>        if (is_method("INVITE|BYE|SUBSCRIBE|UPDATE")) {</div><div>                if(!t_is_set("branch_route")) {</div><div>                        t_on_branch("MANAGE_BRANCH");</div><div>
                }</div><div>        }</div><div>        if (is_method("INVITE|SUBSCRIBE|UPDATE")) {</div><div>                if(!t_is_set("onreply_route")) t_on_reply("MANAGE_REPLY");</div><div>
        }</div><div>        if (is_method("INVITE")) {</div><div>                if(!t_is_set("failure_route")) t_on_failure("MANAGE_FAILURE");</div><div>        }</div><div><br></div><div>        if (!t_relay()) {</div>
<div>                xlog("testM : Unable to relay !!!! :{ \n");</div><div>                sl_reply_error();</div><div>        }</div><div>        exit;</div><div>}</div><div><br></div><div># Per SIP request initial checks</div>
<div>route[REQINIT] {</div><div>#!ifdef WITH_ANTIFLOOD</div><div>        # flood dection from same IP and traffic ban for a while</div><div>        # be sure you exclude checking trusted peers, such as pstn gateways</div>
<div>        # - local host excluded (e.g., loop to self)</div><div>        if(src_ip!=myself)</div><div>        {</div><div>                if($sht(ipban=>$si)!=$null)</div><div>                {</div><div>                        # ip is already blocked</div>
<div>                        xdbg("request from blocked IP - $rm from $fu (IP:$si:$sp                                                                             )\n");</div><div>                        exit;</div>
<div>                }</div><div>                if (!pike_check_req())</div><div>                {</div><div>                        xlog("L_ALERT","ALERT: pike blocking $rm from $fu (IP:$s                                                                             i:$sp)\n");</div>
<div>                        $sht(ipban=>$si) = 1;</div><div>                        exit;</div><div>                }</div><div>        }</div><div>#!endif</div><div><br></div><div>        if (!mf_process_maxfwd_header("10")) {</div>
<div>                sl_send_reply("483","Too Many Hops");</div><div>                exit;</div><div>        }</div><div><br></div><div>        if(!sanity_check("1511", "7"))</div><div>
        {</div><div>                xlog("Malformed SIP message from $si:$sp\n");</div><div>                exit;</div><div>        }</div><div>}</div><div><br></div><div># Handle requests within SIP dialogs</div>
<div>route[WITHINDLG] {</div><div>        if (has_totag()) {</div><div>                # sequential request withing a dialog should</div><div>                # take the path determined by record-routing</div><div>                if (loose_route()) {</div>
<div>                        route(DLGURI);</div><div>                        if (is_method("BYE")) {</div><div>                                #xlog("testM : Got BYE from some PSTN/UAC.\n");</div><div>
                                setflag(FLT_ACC); # do accounting ...</div><div>                                #xlog("testM : Did accounting.\n");</div><div>                                setflag(FLT_ACCFAILED); # ... even if the transa                                                                             ction fails</div>
<div>                                #xlog("testM : Calling route{NATMANAGE} from WI                                                                             THINDLG.\n");</div><div>                                #t_newtran();</div>
<div>                                #t_reply("200", "OK");</div><div>                                #xlog("testM : Called route{NATMANAGE} for BYE                                                                              froom WITHINDLG.\n");</div>
<div>                                #exit;</div><div>                        }</div><div>                        else if ( is_method("ACK") ) {</div><div>                                # ACK is forwarded statelessy</div>
<div>                                route(NATMANAGE);</div><div>                        }</div><div>                        else if ( is_method("NOTIFY") ) {</div><div>                                # Add Record-Route for in-dialog NOTIFY as per R                                                                             FC 6665.</div>
<div>                                record_route();</div><div>                        }</div><div>                        route(RELAY);</div><div>                } else {</div><div>                        if (is_method("SUBSCRIBE") && uri == myself) {</div>
<div>                                # in-dialog subscribe requests</div><div>                                route(PRESENCE);</div><div>                                exit;</div><div>                        }</div><div>
                        if ( is_method("ACK") ) {</div><div>                                if ( t_check_trans() ) {</div><div>                                        # no loose-route, but stateful ACK;</div><div>
                                        # must be an ACK after a 487</div><div>                                        # or e.g. 404 from upstream server</div><div>                                        route(RELAY);</div>
<div>                                        exit;</div><div>                                } else {</div><div>                                        # ACK without matching transaction ... i                                                                             gnore and discard</div>
<div>                                        exit;</div><div>                                }</div><div>                        }</div><div>                        sl_send_reply("404","Not here");</div>
<div>                }</div><div>                exit;</div><div>        }</div><div>}</div><div><br></div><div># Handle SIP registrations</div><div>route[REGISTRAR] {</div><div>        if (is_method("REGISTER"))</div>
<div>        {</div><div>                if(isflagset(FLT_NATS))</div><div>                {</div><div>                        setbflag(FLB_NATB);</div><div>                        # uncomment next line to do SIP NAT pinging</div>
<div>                        ## setbflag(FLB_NATSIPPING);</div><div>                }</div><div>                if (!save("location"))</div><div>                        sl_reply_error();</div><div><br></div><div>
                exit;</div><div>        }</div><div>}</div><div><br></div><div># USER location service</div><div>route[LOCATION] {</div><div><br></div><div>#!ifdef WITH_SPEEDDIAL</div><div>        # search for short dialing - 2-digit extension</div>
<div>        if($rU=~"^[0-9][0-9]$")</div><div>                if(sd_lookup("speed_dial"))</div><div>                        route(SIPOUT);</div><div>#!endif</div><div><br></div><div>#!ifdef WITH_ALIASDB</div>
<div>        # search in DB-based aliases</div><div>        if(alias_db_lookup("dbaliases"))</div><div>                route(SIPOUT);</div><div>#!endif</div><div><br></div><div>        $avp(oexten) = $rU;</div><div>
        if (!lookup("location")) {</div><div>                $var(rc) = $rc;</div><div>                route(TOVOICEMAIL);</div><div>                t_newtran();</div><div>                switch ($var(rc)) {</div>
<div>                        case -1:</div><div>                        case -3:</div><div>                                send_reply("404", "Not Found");</div><div>                                exit;</div>
<div>                        case -2:</div><div>                                send_reply("405", "Method Not Allowed");</div><div>                                exit;</div><div>                }</div>
<div>        }</div><div><br></div><div>        # when routing via usrloc, log the missed calls also</div><div>        if (is_method("INVITE"))</div><div>        {</div><div>                setflag(FLT_ACCMISSED);</div>
<div>        }</div><div><br></div><div>        route(RELAY);</div><div>        exit;</div><div>}</div><div><br></div><div># Presence server route</div><div>route[PRESENCE] {</div><div>        if(!is_method("PUBLISH|SUBSCRIBE"))</div>
<div>                return;</div><div><br></div><div>        if(is_method("SUBSCRIBE") && $hdr(Event)=="message-summary") {</div><div>                route(TOVOICEMAIL);</div><div>                # returns here if no voicemail server is configured</div>
<div>                sl_send_reply("404", "No voicemail service");</div><div>                exit;</div><div>        }</div><div><br></div><div>#!ifdef WITH_PRESENCE</div><div>        if (!t_newtran())</div>
<div>        {</div><div>                sl_reply_error();</div><div>                exit;</div><div>        }</div><div><br></div><div>        if(is_method("PUBLISH"))</div><div>        {</div><div>                handle_publish();</div>
<div>                t_release();</div><div>        } else if(is_method("SUBSCRIBE")) {</div><div>                handle_subscribe();</div><div>                t_release();</div><div>        }</div><div>        exit;</div>
<div>#!endif</div><div><br></div><div>        # if presence enabled, this part will not be executed</div><div>        if (is_method("PUBLISH") || $rU==$null)</div><div>        {</div><div>                sl_send_reply("404", "Not here");</div>
<div>                exit;</div><div>        }</div><div>        return;</div><div>}</div><div><br></div><div># Authentication route</div><div>route[AUTH] {</div><div>#!ifdef WITH_AUTH</div><div><br></div><div>#!ifdef WITH_IPAUTH</div>
<div>        if((!is_method("REGISTER")) && allow_source_address())</div><div>        {</div><div>                # source IP allowed</div><div>                return;</div><div>        }</div><div>#!endif</div>
<div><br></div><div>        if (is_method("REGISTER") || from_uri==myself)</div><div>        {</div><div>                # authenticate requests</div><div>                if (!auth_check("$fd", "subscriber", "1")) {</div>
<div>                        auth_challenge("$fd", "0");</div><div>                        exit;</div><div>                }</div><div>                # user authenticated - remove auth header</div><div>
                if(!is_method("REGISTER|PUBLISH"))</div><div>                        consume_credentials();</div><div>        }</div><div>        # if caller is not local subscriber, then check if it calls</div>
<div>        # a local destination, otherwise deny, not an open relay here</div><div>        if (from_uri!=myself && uri!=myself)</div><div>        {</div><div>                sl_send_reply("403","Not relaying");</div>
<div>                exit;</div><div>        }</div><div><br></div><div>#!endif</div><div>        return;</div><div>}</div><div><br></div><div># Caller NAT detection route</div><div>route[NATDETECT] {</div><div>#!ifdef WITH_NAT</div>
<div>        force_rport();</div><div>        if (nat_uac_test("19")) {</div><div>                if (is_method("REGISTER")) {</div><div>                        fix_nated_register();</div><div>                } else {</div>
<div>                        if(is_first_hop())</div><div>                                set_contact_alias();</div><div>                }</div><div>                setflag(FLT_NATS);</div><div>        }</div><div>#!endif</div>
<div>        return;</div><div>}</div><div><br></div><div># RTPProxy control</div><div>route[NATMANAGE] {</div><div>#!ifdef WITH_NAT</div><div>        if (is_request()) {</div><div>                if(has_totag()) {</div><div>
                        if(check_route_param("nat=yes")) {</div><div>                                setbflag(FLB_NATB);</div><div>                        }</div><div>                }</div><div>        }</div><div>
#if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB)))</div><div>#{</div><div>#               rtpproxy_manage();</div><div>#               return;</div><div>#}</div><div><br></div><div>        rtpproxy_manage("z90");</div>
<div><br></div><div>        if (is_request()) {</div><div>                if (!has_totag()) {</div><div>                        if(t_is_branch_route()) {</div><div>                                if ((isflagset(FLT_NATS) || isbflagset(FLB_NATB)                                                                             )) {</div>
<div>                                add_rr_param(";nat=yes");</div><div>                                }</div><div>                        }</div><div>                }</div><div>        }</div><div>        if (is_reply()) {</div>
<div>                if(isbflagset(FLB_NATB)) {</div><div>                        if(is_first_hop())</div><div>                                set_contact_alias();</div><div>                }</div><div>        }</div><div>
#!endif</div><div>        return;</div><div>}</div><div><br></div><div># URI update for dialog requests</div><div>route[DLGURI] {</div><div>#!ifdef WITH_NAT</div><div>        if(!isdsturiset()) {</div><div>                handle_ruri_alias();</div>
<div>        }</div><div>#!endif</div><div>        return;</div><div>}</div><div><br></div><div># Routing to foreign domains</div><div>route[SIPOUT] {</div><div>        if (!uri==myself)</div><div>        {</div><div>                append_hf("P-hint: outbound\r\n");</div>
<div>                route(RELAY);</div><div>        }</div><div>}</div><div><br></div><div># PSTN GW routing</div><div>route[PSTN] {</div><div>#!ifdef WITH_PSTN</div><div>        # check if PSTN GW IP is defined</div><div>
        if (strempty($sel(cfg_get.pstn.gw_ip))) {</div><div>                xlog("SCRIPT: PSTN rotuing enabled but pstn.gw_ip not defined\n"                                                                             );</div>
<div>                return;</div><div>        }</div><div><br></div><div>        # route to PSTN dialed numbers starting with '+' or '00'</div><div>        #     (international format)</div><div>        # - update the condition to match your dialing rules for PSTN routing</div>
<div>        if(!($rU=~"^(\+|00)[1-9][0-9]{3,20}$"))</div><div>                return;</div><div><br></div><div>        # only local users allowed to call</div><div>        if(from_uri!=myself) {</div><div>                sl_send_reply("403", "Not Allowed");</div>
<div>                exit;</div><div>        }</div><div><br></div><div>        if (strempty($sel(cfg_get.pstn.gw_port))) {</div><div>                $ru = "sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip);</div>
<div>        } else {</div><div>                $ru = "sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip) + ":"</div><div>                                        + $sel(cfg_get.pstn.gw_port);</div>
<div>        }</div><div><br></div><div>        route(RELAY);</div><div>        exit;</div><div>#!endif</div><div><br></div><div>        return;</div><div>}</div><div><br></div><div># XMLRPC routing</div><div>#!ifdef WITH_XMLRPC</div>
<div>route[XMLRPC] {</div><div>        # allow XMLRPC from localhost</div><div>        if ((method=="POST" || method=="GET")</div><div>                        && (src_ip==127.0.0.1)) {</div><div>
                # close connection only for xmlrpclib user agents (there is a bu                                                                             g in</div><div>                # xmlrpclib: it waits for EOF before interpreting the response).</div>
<div>                if ($hdr(User-Agent) =~ "xmlrpclib")</div><div>                        set_reply_close();</div><div>                set_reply_no_connect();</div><div>                dispatch_rpc();</div><div>
                exit;</div><div>        }</div><div>        send_reply("403", "Forbidden");</div><div>        exit;</div><div>}</div><div>#!endif</div><div><br></div><div># route to voicemail server</div>
<div>route[TOVOICEMAIL] {</div><div>#!ifdef WITH_VOICEMAIL</div><div>        if(!is_method("INVITE|SUBSCRIBE"))</div><div>                return;</div><div><br></div><div>        # check if VoiceMail server IP is defined</div>
<div>        if (strempty($sel(cfg_get.voicemail.srv_ip))) {</div><div>                xlog("SCRIPT: VoiceMail rotuing enabled but IP not defined\n");</div><div>                return;</div><div>        }</div><div>
        if(is_method("INVITE")) {</div><div>                if($avp(oexten)==$null)</div><div>                        return;</div><div>                $ru = "sip:" + $avp(oexten) + "@" + $sel(cfg_get.voicemail.srv_i                                                                             p)</div>
<div>                                + ":" + $sel(cfg_get.voicemail.srv_port);</div><div>        } else {</div><div>                if($rU==$null)</div><div>                        return;</div><div>                $ru = "sip:" + $rU + "@" + $sel(cfg_get.voicemail.srv_ip)</div>
<div>                                + ":" + $sel(cfg_get.voicemail.srv_port);</div><div>        }</div><div>        route(RELAY);</div><div>        exit;</div><div>#!endif</div><div><br></div><div>        return;</div>
<div>}</div><div><br></div><div># manage outgoing branches</div><div>branch_route[MANAGE_BRANCH] {</div><div>        xdbg("new branch [$T_branch_idx] to $ru\n");</div><div>        route(NATMANAGE);</div><div>}</div>
<div><br></div><div># manage incoming replies</div><div>onreply_route[MANAGE_REPLY] {</div><div>        xdbg("incoming reply\n");</div><div>        if(status=~"[12][0-9][0-9]")</div><div>                route(NATMANAGE);</div>
<div>}</div><div><br></div><div># manage failure routing cases</div><div>failure_route[MANAGE_FAILURE] {</div><div>        route(NATMANAGE);</div><div><br></div><div>        if (t_is_canceled()) {</div><div>                exit;</div>
<div>        }</div><div><br></div><div>#!ifdef WITH_BLOCK3XX</div><div>        # block call redirect based on 3xx replies.</div><div>        if (t_check_status("3[0-9][0-9]")) {</div><div>                t_reply("404","Not found");</div>
<div>                exit;</div><div>        }</div><div>#!endif</div><div><br></div><div>#!ifdef WITH_VOICEMAIL</div><div>        # serial forking</div><div>        # - route to voicemail on busy or no answer (timeout)</div>
<div>        if (t_check_status("486|408")) {</div><div>                $du = $null;</div><div>                route(TOVOICEMAIL);</div><div>                exit;</div><div>        }</div><div>#!endif</div><div>
}</div></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>------------------------------------------------------------------------------------------------------------------</div><div><br>
</div><div>SIP TRACE</div><div><br></div><div><br></div><div><div>REGISTER sip:71.71.71.71 SIP/2.0</div><div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bK1b54.98ebaeef387ced8eb54624e6c7a90504.0</div><div>
<br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;received=61.61.61.61;rport=58931;branch=z9hG4bKPjI5YxCTUEIkkWEg0VswESOCq7lpvwYUkE</div><div><br></div><div>Max-Forwards: 69</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=ODxcd4MPCfZc.o5M6gAZObocSE9ZpbyW</div>
<div><br></div><div>To: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>></div><div><br></div><div>Call-ID: XsaPsPHKODzjjDr9TgogZFZs61hetHv7</div><div><br></div><div>CSeq: 62147 REGISTER</div>
<div><br></div><div>User-Agent: pj_arubaslim-16/r2</div><div><br></div><div>Contact: "57778" <sip:test@192.168.1.4:58931;ob></div><div><br></div><div>Expires: 900</div><div><br></div><div>Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS</div>
<div><br></div><div>Content-Length:  0</div><div><br></div><div>P-hint: outbound</div><div><br></div><div><br></div><div><br></div><div>SIP/2.0 407 Proxy Authentication Required</div><div><br></div><div>CSeq: 62147 REGISTER</div>
<div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bK1b54.98ebaeef387ced8eb54624e6c7a90504.0</div><div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;branch=z9hG4bKPjI5YxCTUEIkkWEg0VswESOCq7lpvwYUkE</div>
<div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=ODxcd4MPCfZc.o5M6gAZObocSE9ZpbyW</div><div><br></div><div>Call-ID: XsaPsPHKODzjjDr9TgogZFZs61hetHv7</div>
<div><br></div><div>To: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=170604141058</div><div><br></div><div>Proxy-Authenticate: DIGEST realm="<a href="http://sip.mydomain.co">sip.mydomain.co</a>", nonce="140301389817101016806045824224"</div>
<div><br></div><div>Content-Length: 0</div><div><br></div><div><br></div><div><br></div><div>REGISTER sip:71.71.71.71 SIP/2.0</div><div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bKfb54.1eaeef967bf46fb647eed0bb87a9406e.0</div>
<div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;received=61.61.61.61;rport=58931;branch=z9hG4bKPjRPPULjuny1lG1x2Qn0UumpeHPLGxqQHI</div><div><br></div><div>Max-Forwards: 69</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=ODxcd4MPCfZc.o5M6gAZObocSE9ZpbyW</div>
<div><br></div><div>To: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>></div><div><br></div><div>Call-ID: XsaPsPHKODzjjDr9TgogZFZs61hetHv7</div><div><br></div><div>CSeq: 62148 REGISTER</div>
<div><br></div><div>User-Agent: pj_arubaslim-16/r2</div><div><br></div><div>Contact: "57778" <sip:test@192.168.1.4:58931;ob></div><div><br></div><div>Expires: 900</div><div><br></div><div>Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS</div>
<div><br></div><div>Proxy-Authorization: Digest username="test", realm="<a href="http://sip.mydomain.co">sip.mydomain.co</a>", nonce="140301389817101016806045824224", uri="sip:71.71.71.71", response="0ca765f266b6bfc8ea0ef00227272393"</div>
<div><br></div><div>Content-Length:  0</div><div><br></div><div>P-hint: outbound</div><div><br></div><div><br></div><div><br></div><div>SIP/2.0 200 OK</div><div><br></div><div>CSeq: 62148 REGISTER</div><div><br></div><div>
Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bKfb54.1eaeef967bf46fb647eed0bb87a9406e.0</div><div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;branch=z9hG4bKPjRPPULjuny1lG1x2Qn0UumpeHPLGxqQHI</div><div><br></div><div>
From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=ODxcd4MPCfZc.o5M6gAZObocSE9ZpbyW</div><div><br></div><div>Call-ID: XsaPsPHKODzjjDr9TgogZFZs61hetHv7</div><div><br></div>
<div>To: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=170604141059</div><div><br></div><div>Contact: "57778" <sip:test@192.168.1.4:58931;ob>;expires=600</div>
<div><br></div><div>Expires: 600</div><div><br></div><div>Content-Length: 0</div><div><br></div><div><br></div><div><br></div><div>SUBSCRIBE <a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a> SIP/2.0</div><div>
<br></div><div>Record-Route: <sip:81.81.81.81:7878;lr=on;nat=yes></div><div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bK0f2c.8c652a23fe5f790c4bb9216d48b80199.0</div><div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;received=61.61.61.61;rport=58931;branch=z9hG4bKPj.syjKlsSGhtf420D3Gs4.gYpLomA2oQq</div>
<div><br></div><div>Max-Forwards: 69</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=hkjR9-fCrHBhiGYK1xpZGvZmEqjx6bIC</div><div><br></div><div>
To: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>></div><div><br></div><div>Contact: "57778" <sip:test@192.168.1.4:58931;ob;alias=61.61.61.61~58931~1></div><div>
<br></div><div>Call-ID: RvFl7GSaJwV6YVHkewSAJ4NjqH239DqB</div><div><br></div><div>CSeq: 10987 SUBSCRIBE</div><div><br></div><div>Event: message-summary</div><div><br></div><div>Expires: 3600</div><div><br></div><div>Supported: replaces, 100rel, timer, norefersub</div>
<div><br></div><div>Accept: application/simple-message-summary</div><div><br></div><div>Allow-Events: presence, message-summary, refer</div><div><br></div><div>User-Agent: pj_arubaslim-16/r2</div><div><br></div><div>Content-Length:  0</div>
<div><br></div><div>P-hint: outbound</div><div><br></div><div><br></div><div><br></div><div>SIP/2.0 401 Unauthorised</div><div><br></div><div>CSeq: 10987 SUBSCRIBE</div><div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bK0f2c.8c652a23fe5f790c4bb9216d48b80199.0</div>
<div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;branch=z9hG4bKPj.syjKlsSGhtf420D3Gs4.gYpLomA2oQq</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=hkjR9-fCrHBhiGYK1xpZGvZmEqjx6bIC</div>
<div><br></div><div>Call-ID: RvFl7GSaJwV6YVHkewSAJ4NjqH239DqB</div><div><br></div><div>To: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=170605141000</div><div><br></div><div>
Content-Length: 0</div><div><br></div><div>WWW-Authenticate: DIGEST realm="<a href="http://sip.mydomain.co">sip.mydomain.co</a>", nonce="140301390017101016806050024224"</div><div><br></div><div>Record-Route: <sip:81.81.81.81:7878;lr=on;nat=yes></div>
<div><br></div><div><br></div><div><br></div><div>SUBSCRIBE <a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a> SIP/2.0</div><div><br></div><div>Record-Route: <sip:81.81.81.81:7878;lr=on;nat=yes></div><div>
<br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bKef2c.315393ac3a4f54a9fd7fe71cb140b41b.0</div><div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;received=61.61.61.61;rport=58931;branch=z9hG4bKPjIFtOYolYGyRGCBo77jg6j38Co3oSuB6l</div>
<div><br></div><div>Max-Forwards: 69</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=hkjR9-fCrHBhiGYK1xpZGvZmEqjx6bIC</div><div><br></div><div>
To: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>></div><div><br></div><div>Contact: "57778" <sip:test@192.168.1.4:58931;ob;alias=61.61.61.61~58931~1></div><div>
<br></div><div>Call-ID: RvFl7GSaJwV6YVHkewSAJ4NjqH239DqB</div><div><br></div><div>CSeq: 10988 SUBSCRIBE</div><div><br></div><div>Event: message-summary</div><div><br></div><div>Expires: 3600</div><div><br></div><div>Supported: replaces, 100rel, timer, norefersub</div>
<div><br></div><div>Accept: application/simple-message-summary</div><div><br></div><div>Allow-Events: presence, message-summary, refer</div><div><br></div><div>User-Agent: pj_arubaslim-16/r2</div><div><br></div><div>Authorization: Digest username="test", realm="<a href="http://sip.mydomain.co">sip.mydomain.co</a>", nonce="140301390017101016806050024224", uri="<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>", response="15ee3de757c18e084fca607438017093"</div>
<div><br></div><div>Content-Length:  0</div><div><br></div><div>P-hint: outbound</div><div><br></div><div><br></div><div><br></div><div>SIP/2.0 200 OK</div><div><br></div><div>CSeq: 10988 SUBSCRIBE</div><div><br></div><div>
Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bKef2c.315393ac3a4f54a9fd7fe71cb140b41b.0</div><div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;branch=z9hG4bKPjIFtOYolYGyRGCBo77jg6j38Co3oSuB6l</div><div><br></div><div>
From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=hkjR9-fCrHBhiGYK1xpZGvZmEqjx6bIC</div><div><br></div><div>Call-ID: RvFl7GSaJwV6YVHkewSAJ4NjqH239DqB</div><div><br></div>
<div>To: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=170605141001</div><div><br></div><div>Expires: 3600</div><div><br></div><div>Content-Length: 0</div><div><br></div><div>
Record-Route: <sip:81.81.81.81:7878;lr=on;nat=yes></div><div><br></div><div><br></div><div><br></div><div>NOTIFY <a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a> SIP/2.0</div><div><br></div><div>CSeq: 100 NOTIFY</div>
<div><br></div><div>Via: SIP/2.0/UDP <a href="http://71.71.71.71:5060">71.71.71.71:5060</a></div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=170605141001</div>
<div><br></div><div>Call-ID: RvFl7GSaJwV6YVHkewSAJ4NjqH239DqB</div><div><br></div><div>To: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=hkjR9-fCrHBhiGYK1xpZGvZmEqjx6bIC</div>
<div><br></div><div>Contact: <sip:71.71.71.71:5060;transport=udp></div><div><br></div><div>Subscription-State: active</div><div><br></div><div>Event: message-summary</div><div><br></div><div>Content-Type: application/simple-message-summary</div>
<div><br></div><div>Content-Length: 65</div><div><br></div><div><br></div><div><br></div><div>Messages-Waiting: no</div><div><br></div><div>Message-Account: <a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a></div>
<div><br></div><div>SIP/2.0 404 Not here</div><div><br></div><div>CSeq: 100 NOTIFY</div><div><br></div><div>Via: SIP/2.0/UDP 71.71.71.71:5060;rport=5060</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=170605141001</div>
<div><br></div><div>Call-ID: RvFl7GSaJwV6YVHkewSAJ4NjqH239DqB</div><div><br></div><div>To: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=hkjR9-fCrHBhiGYK1xpZGvZmEqjx6bIC</div>
<div><br></div><div>Server: kamailio (4.1.3 (i386/linux))</div><div><br></div><div>Content-Length: 0</div><div><br></div><div><br></div><div><br></div><div>INVITE <a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a> SIP/2.0</div>
<div><br></div><div>Record-Route: <sip:81.81.81.81:7878;lr=on;nat=yes></div><div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bKb76c.aa93d0b16ced02bdc00227054365c825.0</div><div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;received=61.61.61.61;rport=58931;branch=z9hG4bKPjcJJWEomCJmbTkvY8iXMdrmQ935aS1h1g</div>
<div><br></div><div>Max-Forwards: 69</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=D3R8zNsNKNyY-eyMmHPVV9SOXI200ESJ</div><div><br></div><div>
To: <<a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a>></div><div><br></div><div>Contact: "57778" <sip:test@192.168.1.4:58931;ob;alias=61.61.61.61~58931~1></div><div><br>
</div><div>Call-ID: ROQWQKmcBUN2H8vrrKSAsRe7AUgdHR81</div><div><br></div><div>CSeq: 23382 INVITE</div><div><br></div><div>Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS</div><div>
<br></div><div>Supported: replaces, 100rel, timer, norefersub</div><div><br></div><div>Session-Expires: 1800</div><div><br></div><div>Min-SE: 90</div><div><br></div><div>User-Agent: pj_arubaslim-16/r2</div><div><br></div>
<div>Content-Type: application/sdp</div><div><br></div><div>Content-Length:   356</div><div><br></div><div>P-hint: outbound</div><div><br></div><div><br></div><div><br></div><div>v=0</div><div><br></div><div>o=- 3612003234 3612003234 IN IP4 81.81.81.81</div>
<div><br></div><div>s=pjmedia</div><div><br></div><div>c=IN IP4 192.168.1.4</div><div><br></div><div>t=0 0</div><div><br></div><div>m=audio 43314 RTP/AVP 3 18 0 8 101</div><div><br></div><div>c=IN IP4 81.81.81.81</div><div>
<br></div><div>a=rtcp:43315</div><div><br></div><div>a=sendrecv</div><div><br></div><div>a=rtpmap:3 GSM/8000</div><div><br></div><div>a=rtpmap:18 G729/8000</div><div><br></div><div>a=fmtp:18 annexb=no</div><div><br></div>
<div>a=rtpmap:0 PCMU/8000</div><div><br></div><div>a=rtpmap:8 PCMA/8000</div><div><br></div><div>a=rtpmap:101 telephone-event/8000</div><div><br></div><div>a=fmtp:101 0-15</div><div><br></div><div>a=nortpproxy:yes</div><div>
<br></div><div>SIP/2.0 407 Proxy Authentication Required</div><div><br></div><div>CSeq: 23382 INVITE</div><div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bKb76c.aa93d0b16ced02bdc00227054365c825.0</div><div>
<br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;branch=z9hG4bKPjcJJWEomCJmbTkvY8iXMdrmQ935aS1h1g</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=D3R8zNsNKNyY-eyMmHPVV9SOXI200ESJ</div>
<div><br></div><div>Call-ID: ROQWQKmcBUN2H8vrrKSAsRe7AUgdHR81</div><div><br></div><div>To: <<a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a>>;tag=1706051410107236868006249</div><div><br>
</div><div>Contact: <sip:71.71.71.71:5060;transport=udp></div><div><br></div><div>Proxy-Authenticate: DIGEST realm="<a href="http://sip.mydomain.co">sip.mydomain.co</a>", nonce="140301391017101016806051024224"</div>
<div><br></div><div>Content-Length: 0</div><div><br></div><div>Record-Route: <sip:81.81.81.81:7878;lr=on;nat=yes></div><div><br></div><div><br></div><div><br></div><div>ACK <a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a> SIP/2.0</div>
<div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bKb76c.aa93d0b16ced02bdc00227054365c825.0</div><div><br></div><div>Max-Forwards: 69</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=D3R8zNsNKNyY-eyMmHPVV9SOXI200ESJ</div>
<div><br></div><div>To: <<a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a>>;tag=1706051410107236868006249</div><div><br></div><div>Call-ID: ROQWQKmcBUN2H8vrrKSAsRe7AUgdHR81</div><div><br>
</div><div>CSeq: 23382 ACK</div><div><br></div><div>Content-Length: 0</div><div><br></div><div><br></div><div><br></div><div>INVITE <a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a> SIP/2.0</div>
<div><br></div><div>Record-Route: <sip:81.81.81.81:7878;lr=on;nat=yes></div><div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bKc76c.caf535d51d5f83fc6b4139b411ebc727.0</div><div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;received=61.61.61.61;rport=58931;branch=z9hG4bKPjmFPFtuAR124gIuWOHue6pEiRcHdc5wkC</div>
<div><br></div><div>Max-Forwards: 69</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=D3R8zNsNKNyY-eyMmHPVV9SOXI200ESJ</div><div><br></div><div>
To: <<a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a>></div><div><br></div><div>Contact: "57778" <sip:test@192.168.1.4:58931;ob;alias=61.61.61.61~58931~1></div><div><br>
</div><div>Call-ID: ROQWQKmcBUN2H8vrrKSAsRe7AUgdHR81</div><div><br></div><div>CSeq: 23383 INVITE</div><div><br></div><div>Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS</div><div>
<br></div><div>Supported: replaces, 100rel, timer, norefersub</div><div><br></div><div>Session-Expires: 1800</div><div><br></div><div>Min-SE: 90</div><div><br></div><div>User-Agent: pj_arubaslim-16/r2</div><div><br></div>
<div>Proxy-Authorization: Digest username="test", realm="<a href="http://sip.mydomain.co">sip.mydomain.co</a>", nonce="140301391017101016806051024224", uri="<a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a>", response="4edf5e2efd1e8e03bdbe4a693fdfee4c"</div>
<div><br></div><div>Content-Type: application/sdp</div><div><br></div><div>Content-Length:   356</div><div><br></div><div>P-hint: outbound</div><div><br></div><div><br></div><div><br></div><div>v=0</div><div><br></div><div>
o=- 3612003234 3612003234 IN IP4 81.81.81.81</div><div><br></div><div>s=pjmedia</div><div><br></div><div>c=IN IP4 192.168.1.4</div><div><br></div><div>t=0 0</div><div><br></div><div>m=audio 43314 RTP/AVP 3 18 0 8 101</div>
<div><br></div><div>c=IN IP4 81.81.81.81</div><div><br></div><div>a=rtcp:43315</div><div><br></div><div>a=sendrecv</div><div><br></div><div>a=rtpmap:3 GSM/8000</div><div><br></div><div>a=rtpmap:18 G729/8000</div><div><br>
</div><div>a=fmtp:18 annexb=no</div><div><br></div><div>a=rtpmap:0 PCMU/8000</div><div><br></div><div>a=rtpmap:8 PCMA/8000</div><div><br></div><div>a=rtpmap:101 telephone-event/8000</div><div><br></div><div>a=fmtp:101 0-15</div>
<div><br></div><div>a=nortpproxy:yes</div><div><br></div><div>SIP/2.0 183 Session Progress</div><div><br></div><div>CSeq: 23383 INVITE</div><div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bKc76c.caf535d51d5f83fc6b4139b411ebc727.0</div>
<div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;branch=z9hG4bKPjmFPFtuAR124gIuWOHue6pEiRcHdc5wkC</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=D3R8zNsNKNyY-eyMmHPVV9SOXI200ESJ</div>
<div><br></div><div>Call-ID: ROQWQKmcBUN2H8vrrKSAsRe7AUgdHR81</div><div><br></div><div>To: <<a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a>>;tag=1706051410107236868006249</div><div><br>
</div><div>Contact: <sip:71.71.71.71:5060;transport=udp></div><div><br></div><div>Content-Type: application/sdp</div><div><br></div><div>Content-Length: 252</div><div><br></div><div>Record-Route: <sip:81.81.81.81:7878;lr=on;nat=yes></div>
<div><br></div><div><br></div><div><br></div><div>v=0</div><div><br></div><div>o=SipSwitch 6248 7248 IN IP4 71.71.71.71</div><div><br></div><div>s=VoipSIP</div><div><br></div><div>i=Audio Session</div><div><br></div><div>
c=IN IP4 71.71.71.71</div><div><br></div><div>t=0 0</div><div><br></div><div>m=audio 6248 RTP/AVP 18 101</div><div><br></div><div>a=rtpmap:18 G729/8000/1</div><div><br></div><div>a=fmtp:18 annexb=no</div><div><br></div><div>
a=rtpmap:101 telephone-event/8000</div><div><br></div><div>a=fmtp:101 0-15</div><div><br></div><div>a=sendrecv</div><div><br></div><div>SIP/2.0 180 Ringing</div><div><br></div><div>CSeq: 23383 INVITE</div><div><br></div><div>
Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bKc76c.caf535d51d5f83fc6b4139b411ebc727.0</div><div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;branch=z9hG4bKPjmFPFtuAR124gIuWOHue6pEiRcHdc5wkC</div><div><br></div><div>
From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=D3R8zNsNKNyY-eyMmHPVV9SOXI200ESJ</div><div><br></div><div>Call-ID: ROQWQKmcBUN2H8vrrKSAsRe7AUgdHR81</div><div><br></div>
<div>To: <<a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a>>;tag=1706051410107236868006249</div><div><br></div><div>Contact: <sip:71.71.71.71:5060;transport=udp></div><div><br></div>
<div>Content-Type: application/sdp</div><div><br></div><div>Content-Length: 252</div><div><br></div><div>Record-Route: <sip:81.81.81.81:7878;lr=on;nat=yes></div><div><br></div><div><br></div><div><br></div><div>v=0</div>
<div><br></div><div>o=SipSwitch 6248 7248 IN IP4 71.71.71.71</div><div><br></div><div>s=VoipSIP</div><div><br></div><div>i=Audio Session</div><div><br></div><div>c=IN IP4 71.71.71.71</div><div><br></div><div>t=0 0</div><div>
<br></div><div>m=audio 6248 RTP/AVP 18 101</div><div><br></div><div>a=rtpmap:18 G729/8000/1</div><div><br></div><div>a=fmtp:18 annexb=no</div><div><br></div><div>a=rtpmap:101 telephone-event/8000</div><div><br></div><div>
a=fmtp:101 0-15</div><div><br></div><div>a=sendrecv</div><div><br></div><div>SIP/2.0 200 OK</div><div><br></div><div>CSeq: 23383 INVITE</div><div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bKc76c.caf535d51d5f83fc6b4139b411ebc727.0</div>
<div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;branch=z9hG4bKPjmFPFtuAR124gIuWOHue6pEiRcHdc5wkC</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=D3R8zNsNKNyY-eyMmHPVV9SOXI200ESJ</div>
<div><br></div><div>Call-ID: ROQWQKmcBUN2H8vrrKSAsRe7AUgdHR81</div><div><br></div><div>To: <<a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a>>;tag=1706051410107236868006249</div><div><br>
</div><div>Contact: <sip:71.71.71.71:5060;transport=udp></div><div><br></div><div>Content-Type: application/sdp</div><div><br></div><div>Content-Length: 252</div><div><br></div><div>Record-Route: <sip:81.81.81.81:7878;lr=on;nat=yes></div>
<div><br></div><div><br></div><div><br></div><div>v=0</div><div><br></div><div>o=SipSwitch 6248 7248 IN IP4 71.71.71.71</div><div><br></div><div>s=VoipSIP</div><div><br></div><div>i=Audio Session</div><div><br></div><div>
c=IN IP4 71.71.71.71</div><div><br></div><div>t=0 0</div><div><br></div><div>m=audio 6248 RTP/AVP 18 101</div><div><br></div><div>a=rtpmap:18 G729/8000/1</div><div><br></div><div>a=fmtp:18 annexb=no</div><div><br></div><div>
a=rtpmap:101 telephone-event/8000</div><div><br></div><div>a=fmtp:101 0-15</div><div><br></div><div>a=sendrecv</div><div><br></div><div>ACK sip:71.71.71.71:5060;transport=udp SIP/2.0</div><div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bKc76c.e624c28002d41f48ae76813b26e516f3.0</div>
<div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;received=61.61.61.61;rport=58931;branch=z9hG4bKPjJ8XsuToNj.92GHJLiuK-JZ5T5PpfTbhr</div><div><br></div><div>Max-Forwards: 69</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=D3R8zNsNKNyY-eyMmHPVV9SOXI200ESJ</div>
<div><br></div><div>To: <<a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a>>;tag=1706051410107236868006249</div><div><br></div><div>Call-ID: ROQWQKmcBUN2H8vrrKSAsRe7AUgdHR81</div><div><br>
</div><div>CSeq: 23383 ACK</div><div><br></div><div>Content-Length:  0</div><div><br></div><div><br></div><div><br></div><div>BYE sip:71.71.71.71:5060;transport=udp SIP/2.0</div><div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bK976c.6ca2249268e6f9592a6948becb29c474.0</div>
<div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;received=61.61.61.61;rport=58931;branch=z9hG4bKPjJy-pnGAhtqwqV5uRixN-mvDWOTPLupLU</div><div><br></div><div>Max-Forwards: 69</div><div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=D3R8zNsNKNyY-eyMmHPVV9SOXI200ESJ</div>
<div><br></div><div>To: <<a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a>>;tag=1706051410107236868006249</div><div><br></div><div>Call-ID: ROQWQKmcBUN2H8vrrKSAsRe7AUgdHR81</div><div><br>
</div><div>CSeq: 23384 BYE</div><div><br></div><div>User-Agent: pj_arubaslim-16/r2</div><div><br></div><div>Content-Length:  0</div><div><br></div><div><br></div><div><br></div><div>SIP/2.0 200 OK</div><div><br></div><div>
CSeq: 23384 BYE</div><div><br></div><div>Via: SIP/2.0/UDP 81.81.81.81:7878;branch=z9hG4bK976c.6ca2249268e6f9592a6948becb29c474.0</div><div><br></div><div>Via: SIP/2.0/UDP 192.168.1.4:58931;received=61.61.61.61;rport=58931;branch=z9hG4bKPjJy-pnGAhtqwqV5uRixN-mvDWOTPLupLU</div>
<div><br></div><div>From: "57778" <<a href="mailto:sip%3Atest@71.71.71.71">sip:test@71.71.71.71</a>>;tag=D3R8zNsNKNyY-eyMmHPVV9SOXI200ESJ</div><div><br></div><div>Call-ID: ROQWQKmcBUN2H8vrrKSAsRe7AUgdHR81</div>
<div><br></div><div>To: <<a href="mailto:sip%3A919000000002@71.71.71.71">sip:919000000002@71.71.71.71</a>>;tag=1706051410107236868006249</div><div><br></div><div>Contact: <sip:71.71.71.71:5060;transport=udp></div>
<div><br></div><div>Content-Length: 0</div><div><br></div><div>Record-Route: <sip:81.81.81.81:7878;lr=on;nat=yes></div><div><br></div><div><br></div><div><br></div></div><div><br></div></div>