[SR-Users] SIP-Trunk Kamailio and Asterisk

Володимир Іванець volodyaivanets at gmail.com
Wed Jun 21 12:47:38 CEST 2017


Hello again,

After doing some research I found this: "*Asterisk normally matches
incoming calls to users based on the From: user name (without domain)*.
However, if Asterisk can't find a user that matches the incoming call, it
will try to match the caller's IP address with the IP addresses of known
peers. If there's no match at all, the call will be sent to the context
defined in the [general] section of sip.conf." here
https://www.voip-info.org/wiki/view/Asterisk+sip+type.
And after replacing *uac_replace_from("sip:4444444444 at XXX.XXX.XXX.XXX") *
with *uac_replace_from("sip:trunk_name at XXX.XXX.XXX.XXX") *everything worked
as expected.

Thanks.

2017-06-20 18:00 GMT+03:00 Володимир Іванець <volodyaivanets at gmail.com>:

> Hello everyone,
>
> I'm doing some custom Kamailio configuration to achieve few things but
> seem to be stuck with SIP trunks. I'm currently using Kamailio 4.4.5 and
> here is what I have at the moment:
>
> *1.* Asterisk 11.25.1 servers behing Kamailio using RealTime for SIP
> peers.
>
> *2.* Route that checks if packet was sent from one of configured SIP
> trunks. This part works correctly:
>
> *route[FROMPSTN] {*
> *        xlog("== FROMPSTN ==\n");*
> *        $var(socket) = $si + ":" + $sp;*
> *        xlog("**** $var(socket)\n");*
> *        xlog("**** $(sht(trunks_kamailio=>$var(socket)))\n");*
> *        if ($(sht(trunks_kamailio=>$var(socket))) != $null) {*
> *                xlog("**** From $(sht(trunks_kamailio=>$var(socket)))
> PSTN\n");*
> *                return 1;*
> *                }*
> *        xlog("**** Not from PSTN\n");*
> *        return -1;*
> *}*
>
>
> *3.* Here is a fragment that sends INVITE packet to *TOASTERISK* route if
> it was received from one of trunks. I have 4444444444 at XXX.XXX.XXX.XXX
> hardcoded for now, and in my configuration 4444444444 and XXX.XXX.XXX.XXX
> represent my real caller id number and carrier's IP address:
>
> *if(route(FROMPSTN)) {*
> *        uac_replace_from("sip:4444444444 at XXX.XXX.XXX.XXX");*
> *        route(TOASTERISK);*
> *}*
>
>
> *4.* TOASTERISK basically has folloving fragment that load balances
> traffic between Asterisk nodes:
>
> *if(!ds_select_dst("0", "4")) {*
> *        xlog("**** Call was not sent to none of Asterisk hosts\n");*
> *        if(!is_method("REGISTER")) {*
> *                xlog("**** Method is not REGISTER\n");*
> *                send_reply("404", "No destination");*
> *        }*
> *        xlog("**** Dispatcher fail\n");*
> *        exit;*
> *}*
>
>
> So when I'm making a call to my test number, I can see following incomming
> packet in Asterisk from Kamailio. From header has correct caller id number
> and carrier's IP address (192.168.88.5 is Kamailio's internal IP address):
> [image: Вбудоване зображення 1]
>
> And when Asterisk tries to find a maching peer for this incoming call, it
> is using Kamailio's instead of Carrier's IP address. So it is actually
> finds one of peers (101-XXXXXXX) that is being authenticated on Kamailio as
> many others:
> [image: Вбудоване зображення 2]
>
> I'm not sure if Asterisk is just using packet's source IP to lookup for
> corresponding peer or something else from it's content. I will really
> appreciate any help on this.
>
> Thanks a lot!
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20170621/6b5bfbff/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 55728 bytes
Desc: not available
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20170621/6b5bfbff/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 82537 bytes
Desc: not available
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20170621/6b5bfbff/attachment-0001.png>


More information about the sr-users mailing list