I asked for "kamctl dispatcher dump". 'show' only prints the table.
On Jul 24, 2016 18:38, "Tickling Contest" <tickling.cont...@gmail.com> wrote: > Thanks, Sammy. I fixed the error re: transport on Kamailio, but now > nothing is sent as the dispatcher doesn't seem to work as expected by me. > Here's the output you requested, any help is appreciated: > > root@kamailio:/etc/kamailio# kamctl dispatcher show > dispatcher gateways > > +----+-------+--------------------------------------+-------+----------+------------+-------------+ > | id | setid | destination | flags | priority | > attrs | description | > > +----+-------+--------------------------------------+-------+----------+------------+-------------+ > | 1 | 1 | sip:192.168.1.102:5060;transport=tcp | 0 | 0 | > weight=100 | Asterisk A | > > +----+-------+--------------------------------------+-------+----------+------------+-------------+ > > root@kamailio:/etc/kamailio# netstat -pln | grep kamailio > tcp 0 0 0.0.0.0:5060 0.0.0.0:* > LISTEN 4453/kamailio > unix 2 [ ACC ] STREAM LISTENING 789407 4447/kamailio > /tmp/kamailio_ctl > root@opensipsA:/etc/kamailio# > > > And on the Asterisk server: > > root@asterisk:~# netstat -pln | grep asterisk > tcp 0 0 0.0.0.0:5060 0.0.0.0:* > LISTEN 2826/asterisk > tcp 0 0 0.0.0.0:2000 0.0.0.0:* > LISTEN 2826/asterisk > udp 0 0 0.0.0.0:5000 0.0.0.0:* > 2826/asterisk > udp 0 0 0.0.0.0:4520 0.0.0.0:* > 2826/asterisk > udp 0 0 0.0.0.0:4569 0.0.0.0:* > 2826/asterisk > udp 0 0 0.0.0.0:49207 0.0.0.0:* > 2826/asterisk > udp 0 0 0.0.0.0:54857 0.0.0.0:* > 2826/asterisk > udp 0 0 0.0.0.0:2727 0.0.0.0:* > 2826/asterisk > unix 2 [ ACC ] STREAM LISTENING 31087 2826/asterisk > /var/run/asterisk/asterisk.ctl > > > Now, the ds_select in the REGFWD does not seem to select anything (and so > nothing is forwarded). > > My complete, current kamailio.cfg is here: > https://gist.github.com/ticklingcontest/0b46e8e53bf50aa3875395c8fb86ff66 > > BTW, I moved away from dispatcher.list file as I could not get it to work > (the DB values always registered, but the list file didn't take). > > Any insight is appreciated. > > Thanks! > > > > On Sun, Jul 24, 2016 at 5:34 PM, SamyGo <govoi...@gmail.com> wrote: > >> Hey, >> Can you show whats the output of the following commands on Kamailio >> server: >> "kamctl dispatcher dump" >> "netstat -pln | grep kamailio" >> >> Send the output of the second command from asterisk server as well i.e >> "netstat -pln | grep asterisk" >> >> Looking at the error it seems like you are trying to reach asterisk on a >> protocol which kamailio is not listening on. >> >> Regards, >> Sammy >> >> On Jul 24, 2016 14:38, "Tickling Contest" <tickling.cont...@gmail.com> >> wrote: >> >>> Hey guys, >>> >>> I dug a little deeper and I found these logs in /var/log/kamailio where >>> 192.168.1.102 is my asterisk server: >>> >>> ul 24 14:25:32 kamailio /usr/sbin/kamailio[3726]: ERROR: tm [ut.h:343]: >>> uri2dst2(): no corresponding socket for af 2 >>> Jul 24 14:25:32 kamailio /usr/sbin/kamailio[3726]: ERROR: tm >>> [uac.c:266]: t_uac_prepare(): t_uac: no socket found >>> Jul 24 14:25:32 kamailio /usr/sbin/kamailio[3726]: ERROR: dispatcher >>> [dispatch.c:2436]: ds_check_timer(): unable to ping [sip: >>> 192.168.1.102:5060] >>> >>> I can broadly tell that the message was not even sent, but the asterisk >>> server VM is alive and well (and indeed on the same physical machine as >>> kamailio VM). >>> >>> What am I missing? Why is this failing? I am running kamailio 4.0.4. >>> >>> On Sat, Jul 23, 2016 at 8:07 PM, Tickling Contest < >>> tickling.cont...@gmail.com> wrote: >>> >>>> I corrected an error with my dispatcher configuration and now, I do hit >>>> the code where >>>> >>>> ds_select_dst ("1", "4") >>>> >>>> is no longer null. >>>> >>>> However, while the xlog I added says uac_req_send () is called, nothing >>>> is sent. The xlog prints out the value of $uac_req(hdrs) as >>>> >>>> Contact: <sip:101@192.168.1.101:5060>#015#012Expires: 600#015 >>>> >>>> after which the uac_req_send () is called. >>>> >>>> I am not sure if this is the correct way? What am I missing? >>>> >>>> Oh, nothing shows up in the tcpdump trace (only the OPTIONS message for >>>> the asterisk<->kamailio peering shows up). >>>> >>>> On Sat, Jul 23, 2016 at 3:48 PM, Tickling Contest < >>>> tickling.cont...@gmail.com> wrote: >>>> >>>>> Thanks, guys! >>>>> >>>>> Sammy, I tried your code in REGFWD, but unfortunately, it does not >>>>> forward anything to Asterisk. I can confirm this because it keeps going >>>>> into the else clause in the REGFWD (which I added to confirm). My current >>>>> REGFWD looks like this: >>>>> >>>>> route[REGFWD] { >>>>> if(!is_method("REGISTER")) >>>>> { >>>>> return; >>>>> } >>>>> xlog ("L_DEBUG", "MYDEBUG: In REGFWD"); >>>>> if(!ds_select_dst("1", "4")) { >>>>> $var(rip) = $(du{s.select,1,:}); >>>>> $var(rport) = $(du{s.select,2,:}); >>>>> $uac_req(method)="REGISTER"; >>>>> $uac_req(ruri)="sip:" + $var(rip) + ":" + $var(rport) + >>>>> ";transport=tcp"; >>>>> $uac_req(furi)="sip:" + $au + "@" + $var(rip); >>>>> $uac_req(turi)="sip:" + $au + "@" + $var(rip); >>>>> $uac_req(hdrs)="Contact: <sip:" + $au + "@ >>>>> 192.168.1.101:5060" + ">\r\n"; >>>>> xlog ("L_DEBUG", "MYDEBUG: In REGFWD, sending >>>>> registration info to Asterisk at $uac_req(ruri)"); >>>>> if($sel(contact.expires) != $null) >>>>> $uac_req(hdrs)= $uac_req(hdrs) + "Expires: >>>>> " + $sel(contact.expires) + "\r\n"; >>>>> else >>>>> $uac_req(hdrs)= $uac_req(hdrs) + "Expires: >>>>> " + $hdr(Expires) + "\r\n"; >>>>> uac_req_send(); >>>>> } >>>>> else >>>>> { >>>>> xlog ("L_DEBUG", "In REGFWD, not forwarding!"); >>>>> } >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> My entire kamailio.cfg file is here: >>>>> https://gist.github.com/ticklingcontest/f96aa4d08b08dc4643056d73da24f0a5 >>>>> >>>>> Any insight is appreciated. Thanks again. >>>>> >>>>> My dispatcher at the moment has only one Asterisk server. My endpoint >>>>> registers (auth with realtime DB in Mysql), but the registration >>>>> information does not reach Asterisk. >>>>> >>>>> My kamailio box is peering with the asterisk box like so: >>>>> >>>>> root@asterisk:~# more /etc/asterisk/pjsip_wizard.conf >>>>> [kamailio] >>>>> type = wizard >>>>> sends_auth = no >>>>> sends_registrations = no >>>>> remote_hosts = 192.168.1.101 >>>>> server_uri_pattern = sip:${REMOTE_HOST}\;transport=tcp >>>>> client_uri_pattern = sip:${REMOTE_HOST}\;transport=tcp >>>>> contact_pattern = sip:${REMOTE_HOST}\;transport=tcp >>>>> outbound_auth/username = dispatcher >>>>> aor/qualify_frequency = 0 >>>>> endpoint/context = from-external ;;; change later >>>>> endpoint/disallow = all ;;; change later >>>>> endpoint/allow = ulaw ;;; change later >>>>> endpoint/dtmf_mode=rfc4733 >>>>> endpoint/media_address=192.168.1.101 ;; >>>>> aor/qualify_frequency = 15 >>>>> >>>>> BTW, my intention is to store the registrations on the Asterisk >>>>> servers as well as my ARI code depends on it. As soon I get the single >>>>> Asterisk situation working, I intend adding more servers to check the load >>>>> balancing and REGISTER forwarding, and to Colin's point, the business of >>>>> just using Kamailio as an outbound proxy. >>>>> >>>>> Again, any insight wrt why no REGISTERs are forwarding to Asterisk is >>>>> appreciated. Why is ds_select_dst("1", "4") evaluating to false for me? >>>>> >>>>> My dispatcher info: >>>>> >>>>> root@kamailio:/etc/kamailio# kamctl dispatcher show >>>>> dispatcher gateways >>>>> >>>>> +----+-------+-------------------+-------+----------+-------+-------------+ >>>>> | id | setid | destination | flags | priority | attrs | >>>>> description | >>>>> >>>>> +----+-------+-------------------+-------+----------+-------+-------------+ >>>>> | 1 | 1 | sip:192.168.1.102 | 1 | 0 | | >>>>> AsteriskA | >>>>> | 2 | 1 | sip:192.168.1.102 | 1 | 0 | | >>>>> AsteriskA | >>>>> >>>>> +----+-------+-------------------+-------+----------+-------+-------------+ >>>>> >>>>> >>>>> Thanks! >>>>> >>>>> On Fri, Jul 22, 2016 at 11:01 AM, Colin Morelli < >>>>> colin.more...@gmail.com> wrote: >>>>> >>>>>> If you're using Kamailio as a registrar, then it would make the most >>>>>> sense to also use it as your outbound proxy for Asterisk. >>>>>> >>>>>> This would mean whenever Asterisk needs to dial an extension, it >>>>>> would instead make a SIP call to your Kamailio instance which would then >>>>>> perform the lookup, forking, and forwarding. >>>>>> >>>>>> Is there a reason this wouldn't work in your infrastructure? If for >>>>>> some reason it can't - though I can't imagine how - then I don't see the >>>>>> purpose in using Kamailio as a registrar at all. You should just forward >>>>>> everything to Asterisk since it needs to be there anyway. >>>>>> >>>>>> Best, >>>>>> Colin >>>>>> >>>>>> On Fri, Jul 22, 2016 at 9:58 AM SamyGo <govoi...@gmail.com> wrote: >>>>>> >>>>>>> Hi Tickles, >>>>>>> >>>>>>> a) Have you tried doing this on Asterisk realtime ? for any regular >>>>>>> direct registering extension w/o kamailio(even before kamailio) ? If an >>>>>>> extension registers to one asterisk the rest of the boxes would know >>>>>>> where >>>>>>> to contact this extension via realtime-db ? I'd say give that a try and >>>>>>> it >>>>>>> may solve your problem, else using this REGFWD block you can parallel >>>>>>> fork >>>>>>> this register request to ALL of your boxes and everybox would think it >>>>>>> is >>>>>>> registered locally ! (not a recommended option I must say) >>>>>>> >>>>>>> b) If you ignore my previous comment of parallel forking registers, >>>>>>> using this REGFWD block you can use dispatcher module to replace the >>>>>>> $var(rip) and $sel(cfg_get.asterisk.bindport) by changing your >>>>>>> REGFWD block like this: >>>>>>> >>>>>>> route[REGFWD] { >>>>>>> if(!is_method("REGISTER")) >>>>>>> { >>>>>>> return; >>>>>>> } >>>>>>> if(!ds_select_dst("1", "4")) { >>>>>>> $var(rip) = $(du{s.select,1,:}); >>>>>>> $var(rport) = $(du{s.select,2,:}); >>>>>>> $uac_req(method)="REGISTER"; >>>>>>> $uac_req(ruri)="sip:" + $var(rip) + ":" + >>>>>>> $var(rport) + ";transport=tcp"; >>>>>>> $uac_req(furi)="sip:" + $au + "@" + $var(rip); >>>>>>> $uac_req(turi)="sip:" + $au + "@" + $var(rip); >>>>>>> $uac_req(hdrs)="Contact: <sip:" + $au + "@" >>>>>>> + $sel(cfg_get.kamailio.bindip) >>>>>>> + ":" + >>>>>>> $sel(cfg_get.kamailio.bindport) + ">\r\n"; >>>>>>> if($sel(contact.expires) != $null) >>>>>>> $uac_req(hdrs)= $uac_req(hdrs) + >>>>>>> "Expires: " + $sel(contact.expires) + "\r\n"; >>>>>>> else >>>>>>> $uac_req(hdrs)= $uac_req(hdrs) + >>>>>>> "Expires: " + $hdr(Expires) + "\r\n"; >>>>>>> uac_req_send(); >>>>>>> } >>>>>>> >>>>>>> } >>>>>>> >>>>>>> >>>>>>> In summary, depending upon your business logic/use case there could >>>>>>> be other ways to make this work as well. >>>>>>> >>>>>>> Regards, >>>>>>> Sammy >>>>>>> >>>>>>> >>>>>>> On Fri, Jul 22, 2016 at 8:53 AM, Tickling Contest < >>>>>>> tickling.cont...@gmail.com> wrote: >>>>>>> >>>>>>>> Hello, >>>>>>>> >>>>>>>> When using Kamailio with the dispatcher module for Asterisk load >>>>>>>> balancing, I am offloading REGISTERs to Kamailio (works fine), but >>>>>>>> would >>>>>>>> like to forward the REGISTERs to Asterisk so that outgoing calls from >>>>>>>> Asterisk will be possible. I know this is not strictly necessary (e.g., >>>>>>>> just use Kamailio to forward everything), but I have a lot of >>>>>>>> application >>>>>>>> logic behind my Asterisk boxes (using ARI) and so I don't want that to >>>>>>>> break. Thereby, I do need this information in Asterisk as soon as >>>>>>>> possible >>>>>>>> from Kamailio. >>>>>>>> >>>>>>>> Let's say I have three boxes Asterisk_1, Asterisk_2 and Asterisk_3 >>>>>>>> in the dispatcher module like so: >>>>>>>> >>>>>>>> 1 sip:192.168.1.201:5060;transport=tcp >>>>>>>> 1 sip:192.168.1.202:5060;transport=tcp >>>>>>>> 1 sip:192.168.1.203:5060;transport=tcp >>>>>>>> >>>>>>>> My system has endpoints as numerical extensions, from 101 to 110. >>>>>>>> When a new endpoint registers with kamailio (and authenticates), I >>>>>>>> would >>>>>>>> like to send the REGISTER to Asterisk. But I have the following >>>>>>>> questions: >>>>>>>> >>>>>>>> (a) Which Asterisk? I could send it to a round-robinned Asterisk >>>>>>>> (say, Asterisk_2), but that Asterisk may not be the one responsible for >>>>>>>> handling calls outbound for the endpoint that just registered. Even if >>>>>>>> I >>>>>>>> use "hash over auth username" instead of round-robin (In >>>>>>>> http://www.kamailio.org/docs/modules/4.0.x/modules/dispatcher.html#idp16940048, >>>>>>>> choose 5 for "alg", for example) that wont solve this problem as an >>>>>>>> outbound request may come from another Asterisk box which won't have >>>>>>>> the >>>>>>>> requisite registration information. Should I forward REGISTERs to all >>>>>>>> Asterisk boxes? Maybe I won't have to deal with this issue as I use >>>>>>>> realtime and so the REGISTER information, sent to one Asterisk box, is >>>>>>>> available to all Asterisk boxes after the write to the realtime DB. Is >>>>>>>> my >>>>>>>> understanding correct? >>>>>>>> >>>>>>>> (b) How do I do this in kamailio.cfg? With some examples on the >>>>>>>> Internet for WITH_ASTERISK directive, I see that you do >>>>>>>> >>>>>>>> route[REGFWD] { >>>>>>>> if(!is_method("REGISTER")) >>>>>>>> { >>>>>>>> return; >>>>>>>> } >>>>>>>> $var(rip) = $sel(cfg_get.asterisk.bindip); >>>>>>>> $uac_req(method)="REGISTER"; >>>>>>>> $uac_req(ruri)="sip:" + $var(rip) + ":" + >>>>>>>> $sel(cfg_get.asterisk.bindport) + ";transport=tcp"; >>>>>>>> $uac_req(furi)="sip:" + $au + "@" + $var(rip); >>>>>>>> $uac_req(turi)="sip:" + $au + "@" + $var(rip); >>>>>>>> $uac_req(hdrs)="Contact: <sip:" + $au + "@" >>>>>>>> + $sel(cfg_get.kamailio.bindip) >>>>>>>> + ":" + >>>>>>>> $sel(cfg_get.kamailio.bindport) + ">\r\n"; >>>>>>>> if($sel(contact.expires) != $null) >>>>>>>> $uac_req(hdrs)= $uac_req(hdrs) + "Expires: " + >>>>>>>> $sel(contact.expires) + "\r\n"; >>>>>>>> else >>>>>>>> $uac_req(hdrs)= $uac_req(hdrs) + "Expires: " + >>>>>>>> $hdr(Expires) + "\r\n"; >>>>>>>> uac_req_send(); >>>>>>>> } >>>>>>>> >>>>>>>> What is the equivalent for when you are using the dispatcher module >>>>>>>> and the kamailio.bindip and asterisk.bindip etc. are not set in the >>>>>>>> configuration, but instead should be procured from elsewhere? >>>>>>>> >>>>>>>> Any help is appreciated. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing >>>>>>>> list >>>>>>>> sr-users@lists.sip-router.org >>>>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>>>>>>> >>>>>>>> >>>>>>> _______________________________________________ >>>>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing >>>>>>> list >>>>>>> sr-users@lists.sip-router.org >>>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing >>>>>> list >>>>>> sr-users@lists.sip-router.org >>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>>>>> >>>>>> >>>>> >>>> >>> >>> _______________________________________________ >>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list >>> sr-users@lists.sip-router.org >>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>> >>> >> _______________________________________________ >> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list >> sr-users@lists.sip-router.org >> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >> >> > > _______________________________________________ > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list > sr-users@lists.sip-router.org > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users > >
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users