Andrew Galdes
2015-Apr-07 23:48 UTC
[asterisk-users] Asterisk Inbound calls, multiple SIP accounts, calledID
Hi Dmitriy and others and thanks for your help so far. The option "match_auth_username=yes" seems to have had no effect. From my reading, this option will try to match the username of the incoming SIP account to a section heading. If that is how it must work then i can see a big problem. I'm trying to present the receptionist with a nice display of which line the call came in on. For example, the receptionist answers calls for 8 different companies and would like the phone to display the company name that she should announce to the caller. Here is a more complete output of an incoming call. I've changed the SIP numbers to "Company1', etc, to hide the numbers. Connected to Asterisk 10.12.4 currently running on asterisk (pid = 32267)> Verbosity is at least 12 > asterisk*CLI> > asterisk*CLI> > asterisk*CLI> > == Using SIP RTP CoS mark 5 > -- Executing [s at incoming:1] *Set*("*SIP/Company1-00000797*", "*thedid=""NodePhone"<sip:Company2 at sip.internode.on.net > <sip%3ACompany2 at sip.internode.on.net>>"*") in new stack > -- Executing [s at incoming:2] *Set*("*SIP/**Company1**-00000797*", " > *pseudodid="NodePhone"<sip:** sip:Company2**@sip.internode.on.net > <http://sip.internode.on.net>>*") in new stack > -- Executing [s at incoming:3] *Set*("*SIP/**Company1**-00000797*", " > *pseudodid="NodePhone"<sip:** sip:Company2*") in new stack > -- Executing [s at incoming:4] *Set*("*SIP/**Company1**-00000797*", " > *pseudodid=** sip:Company2*") in new stack > -- Executing [s at incoming:5] *GotoIf*("*SIP/**Company1**-00000797*", " > *0?internal,33,1:6*") in new stack > -- Goto (incoming,s,6) > -- Executing [s at incoming:6] *GotoIf*("*SIP/**Company1**-00000797*", " > *0?internal,88,1:7*") in new stack > -- Goto (incoming,s,7) > -- Executing [s at incoming:7] *GotoIf*("*SIP/**Company1**-00000797*", " > *0?internal,36,1:8*") in new stack > -- Goto (incoming,s,8) > -- Executing [s at incoming:8] *GotoIf*("*SIP/**Company1**-00000797*", " > *1?internal,36,1:9*") in new stack > -- Goto (internal,36,1) > -- Executing [36 at internal:1] *Set*("*SIP/**Company1**-00000797*", " > *CALLERID(name)=SIP/**Company1**-00000797*") in new stack > -- Executing [36 at internal:2] *Dial*("*SIP/**Company1**-00000797*", " > *SIP/36,20*") in new stack > == Using SIP RTP CoS mark 5 > -- Called SIP/36 > -- SIP/36-00000798 is ringing > == Spawn extension (internal, 36, 2) exited non-zero on > 'SIP/Company1-00000797' > asterisk*CLI> exitAnd here is the "sip.conf": [general]> match_auth_username=yes > register=081...:... at sip.internode.on.net/s > register=082...:... at sip.internode.on.net/s > register=083...:... at sip.internode.on.net:/s > register=084...:... at sip.internode.on.net:/s > register=085...:... at sip.internode.on.net/s > register=086...:... at sip.internode.on.net/s > register=087...:... at sip.internode.on.net/s > register=088...:... at sip.internode.on.net/s > > [Company1] > username=081... > fromuser=081... > secret=... > canreinvite=no > qualify=yes > context=incoming > type=friend > insecure=invite,port > fromdomain=sip.internode.on.net > host=sip.internode.on.net > dtmfmode=rfc2833 > disallow=all > allow=alaw > allow=ulaw > allow=g729 > bindport=5060 > bindaddr=0.0.0.0 > nat=yes > registertimeout=5 > allowoverlap=no > srvlookup=no > ubscribecontext=from-sip > callcounter=yes[Company2]> ... > [Company3] > ... > [Company4] > ...And here is some of the "extensions.conf" file: [incoming]> ; Get the DID number from the TO header. > exten => s,1,Set(thedid="${SIP_HEADER(TO)}") > exten => s,2,Set(pseudodid=${SIP_HEADER(To)}) > exten => s,3,Set(pseudodid=${CUT(pseudodid,@,1)}) > exten => s,4,Set(pseudodid=${CUT(pseudodid,:,2)})> ; Direct the DID accordingly. > exten => s,5,GotoIf($["${pseudodid}" = "081"]?internal,33,1:6) > exten => s,6,GotoIf($["${pseudodid}" = "082"]?internal,88,1:7) > exten => s,7,GotoIf($["${pseudodid}" = "083"]?internal,36,1:8) > exten => s,8,GotoIf($["${pseudodid}" = "084"]?internal,36,1:9) > exten => s,9,GotoIf($["${pseudodid}" = "085"]?internal,36,1:10) > exten => s,10,GotoIf($["${pseudodid}" = "086"]?internal,89,1:11) > exten => s,11,GotoIf($["${pseudodid}" = "087"]?internal,36,1:12) > exten => s,12,GotoIf($["${pseudodid}" = "088"]?internal,13,1:13)-Andrew Galdes On Thu, Apr 2, 2015 at 3:46 PM, Dmitriy Serov <serov.d.p at gmail.com> wrote:> > This is one of the chronic problems. Try this option in sip.conf: > match_auth_username=yes > > Carefully read the description, it is better to test in "after hours". > > 02.04.2015 2:50, Andrew Galdes ?????: > > Hello all, > > I have an Asterisk server (Asterisk 10.12.4) with multiple sip accounts > with the same service provides. We have 8 phone numbers in total. > > Incoming calls from the public are all correctly directed to appropriate > office handsets. However, the display on the reception phone (the only one > i care about) is always showing the same "SIP/Account1_0843214321" rather > than the account representing the number dialed. > > For-instance, if Sam on her mobile calls "*0811111111*", Asterisk will > show a log entry like the following: > > -- Executing [s at incoming:1] Set("SIP/*Account1_0822222222*", " > thedid=""NodePhone"<sip:*0811111111*@sip.internode.on.net>"") in new stack > But "Account1_*0822222222*" (as the name suggests) has a phone number of > "*0822222222*" and not "*0811111111*". > > So Sam's call will come through and be routed to the correct handset as > the business needs, but it seems that all incoming calls are being labeled > as though coming in on a different account. The effective problem is that > the calledID is now wrong. > > I'm after some general advice on how to handle the problem. > > Ta, > > > -Andrew > > > > > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20150408/a5fca90a/attachment.html>
Andrew Galdes
2015-Apr-08 01:06 UTC
[asterisk-users] Asterisk Inbound calls, multiple SIP accounts, calledID
Solved it, kinda. It's not cute. I'm sure this is the way NOT to do it but it does work. For prosperity, the SIP service is through Internode. Here is my "extensions.conf" file: exten => s,1,Set(thedid="${SIP_HEADER(TO)}"); ignore this one exten => s,2,Set(pseudodid=${SIP_HEADER(To)}) exten => s,3,Set(pseudodid=${CUT(pseudodid,@,1)}) exten => s,4,Set(pseudodid=${CUT(pseudodid,:,2)}) exten => s,5,Set(callersname=${IF($[ ${pseudodid} 081...]?Company1:${callersname})}) exten => s,6,Set(callersname=${IF($[ ${pseudodid} = 082...]?Company2:${callersname})}) exten => s,7,Set(callersname=${IF($[ ${pseudodid} = 083...]?Company3:${callersname})}) exten => s,8,Set(callersname=${IF($[ ${pseudodid} = 084...]?Company4:${callersname})}) exten => s,9,Set(callersname=${IF($[ ${pseudodid} = 085...]?Company5:${callersname})}) exten => s,10,Set(callersname=${IF($[ ${pseudodid} = 086...]?Company6:${callersname})}) exten => s,11,Set(callersname=${IF($[ ${pseudodid} = 087...]?Company7:${callersname})}) exten => s,12,Set(callersname=${IF($[ ${pseudodid} = 088...]?Company8:${callersname})}) exten => s,13,GotoIf($["${callersname}" = "Company1"]?internal,36,1:14); to reception exten => s,14,GotoIf($["${callersname}" = "Company2"]?internal,88,1:15); to department1 exten => s,15,GotoIf($["${callersname}" = "Company3"]?internal,36,1:16); to reception exten => s,16,GotoIf($["${callersname}" = "Company4"]?internal,36,1:17); to reception exten => s,17,GotoIf($["${callersname}" = "Company5"]?internal,36,1:18); to reception exten => s,18,GotoIf($["${callersname}" = "Company6"]?internal,89,1:19); to department2 exten => s,19,GotoIf($["${callersname}" = "Company7"]?internal,36,1:20); to reception exten => s,20,GotoIf($["${callersname}" = "Company8"]?internal,13,1:21); to department3 And later in same file: ; Phone 36 reception> *exten => 36,1,Set(CALLERID(name)=${callersname})* > exten => 36,n,Dial(SIP/36,20) > exten => 36,n,VoiceMail(36,u) > exten => 36,n,HangupTa, -Andrew Galdes Managing Director RHCE, LPI, CCENT AGIX Linux Ph: 08 7324 4429 Mb: 0422 927 598 Find us: Website <http://www.agix.com.au> | LinkedIn <http://au.linkedin.com/in/andrewgaldes> | Blog <http://agix.com.au/blog> | YouTube <http://www.youtube.com/user/andrewgaldes> | Google+ <http://google.com/+AndrewGaldes> *Platform Architects for High Demand Web Applications.* On Wed, Apr 8, 2015 at 9:18 AM, Andrew Galdes <andrew.galdes at agix.com.au> wrote:> Hi Dmitriy and others and thanks for your help so far. > > The option "match_auth_username=yes" seems to have had no effect. From my > reading, this option will try to match the username of the incoming SIP > account to a section heading. If that is how it must work then i can see a > big problem. I'm trying to present the receptionist with a nice display of > which line the call came in on. For example, the receptionist answers calls > for 8 different companies and would like the phone to display the company > name that she should announce to the caller. > > Here is a more complete output of an incoming call. I've changed the SIP > numbers to "Company1', etc, to hide the numbers. > > Connected to Asterisk 10.12.4 currently running on asterisk (pid = 32267) >> Verbosity is at least 12 >> asterisk*CLI> >> asterisk*CLI> >> asterisk*CLI> >> == Using SIP RTP CoS mark 5 >> -- Executing [s at incoming:1] *Set*("*SIP/Company1-00000797*", "*thedid=""NodePhone"<sip:Company2 at sip.internode.on.net >> <sip%3ACompany2 at sip.internode.on.net>>"*") in new stack >> -- Executing [s at incoming:2] *Set*("*SIP/**Company1**-00000797*", " >> *pseudodid="NodePhone"<sip:** sip:Company2**@sip.internode.on.net >> <http://sip.internode.on.net>>*") in new stack >> -- Executing [s at incoming:3] *Set*("*SIP/**Company1**-00000797*", " >> *pseudodid="NodePhone"<sip:** sip:Company2*") in new stack >> -- Executing [s at incoming:4] *Set*("*SIP/**Company1**-00000797*", " >> *pseudodid=** sip:Company2*") in new stack >> -- Executing [s at incoming:5] *GotoIf*("*SIP/**Company1**-00000797*", " >> *0?internal,33,1:6*") in new stack >> -- Goto (incoming,s,6) >> -- Executing [s at incoming:6] *GotoIf*("*SIP/**Company1**-00000797*", " >> *0?internal,88,1:7*") in new stack >> -- Goto (incoming,s,7) >> -- Executing [s at incoming:7] *GotoIf*("*SIP/**Company1**-00000797*", " >> *0?internal,36,1:8*") in new stack >> -- Goto (incoming,s,8) >> -- Executing [s at incoming:8] *GotoIf*("*SIP/**Company1**-00000797*", " >> *1?internal,36,1:9*") in new stack >> -- Goto (internal,36,1) >> -- Executing [36 at internal:1] *Set*("*SIP/**Company1**-00000797*", " >> *CALLERID(name)=SIP/**Company1**-00000797*") in new stack >> -- Executing [36 at internal:2] *Dial*("*SIP/**Company1**-00000797*", " >> *SIP/36,20*") in new stack >> == Using SIP RTP CoS mark 5 >> -- Called SIP/36 >> -- SIP/36-00000798 is ringing >> == Spawn extension (internal, 36, 2) exited non-zero on >> 'SIP/Company1-00000797' >> asterisk*CLI> exit > > > And here is the "sip.conf": > > [general] >> match_auth_username=yes >> register=081...:... at sip.internode.on.net/s >> register=082...:... at sip.internode.on.net/s >> register=083...:... at sip.internode.on.net:/s >> register=084...:... at sip.internode.on.net:/s >> register=085...:... at sip.internode.on.net/s >> register=086...:... at sip.internode.on.net/s >> register=087...:... at sip.internode.on.net/s >> register=088...:... at sip.internode.on.net/s >> >> [Company1] >> username=081... >> fromuser=081... >> secret=... >> canreinvite=no >> qualify=yes >> context=incoming >> type=friend >> insecure=invite,port >> fromdomain=sip.internode.on.net >> host=sip.internode.on.net >> dtmfmode=rfc2833 >> disallow=all >> allow=alaw >> allow=ulaw >> allow=g729 >> bindport=5060 >> bindaddr=0.0.0.0 >> nat=yes >> registertimeout=5 >> allowoverlap=no >> srvlookup=no >> ubscribecontext=from-sip >> callcounter=yes > > > > [Company2] >> ... >> [Company3] >> ... >> [Company4] >> ... > > And here is some of the "extensions.conf" file: > > [incoming] >> ; Get the DID number from the TO header. >> exten => s,1,Set(thedid="${SIP_HEADER(TO)}") >> exten => s,2,Set(pseudodid=${SIP_HEADER(To)}) >> exten => s,3,Set(pseudodid=${CUT(pseudodid,@,1)}) >> exten => s,4,Set(pseudodid=${CUT(pseudodid,:,2)}) > > >> ; Direct the DID accordingly. >> exten => s,5,GotoIf($["${pseudodid}" = "081"]?internal,33,1:6) >> exten => s,6,GotoIf($["${pseudodid}" = "082"]?internal,88,1:7) >> exten => s,7,GotoIf($["${pseudodid}" = "083"]?internal,36,1:8) >> exten => s,8,GotoIf($["${pseudodid}" = "084"]?internal,36,1:9) >> exten => s,9,GotoIf($["${pseudodid}" = "085"]?internal,36,1:10) >> exten => s,10,GotoIf($["${pseudodid}" = "086"]?internal,89,1:11) >> exten => s,11,GotoIf($["${pseudodid}" = "087"]?internal,36,1:12) >> exten => s,12,GotoIf($["${pseudodid}" = "088"]?internal,13,1:13) > > > > -Andrew Galdes > > > On Thu, Apr 2, 2015 at 3:46 PM, Dmitriy Serov <serov.d.p at gmail.com> wrote: > >> >> This is one of the chronic problems. Try this option in sip.conf: >> match_auth_username=yes >> >> Carefully read the description, it is better to test in "after hours". >> >> 02.04.2015 2:50, Andrew Galdes ?????: >> >> Hello all, >> >> I have an Asterisk server (Asterisk 10.12.4) with multiple sip accounts >> with the same service provides. We have 8 phone numbers in total. >> >> Incoming calls from the public are all correctly directed to >> appropriate office handsets. However, the display on the reception phone >> (the only one i care about) is always showing the same >> "SIP/Account1_0843214321" rather than the account representing the number >> dialed. >> >> For-instance, if Sam on her mobile calls "*0811111111*", Asterisk will >> show a log entry like the following: >> >> -- Executing [s at incoming:1] Set("SIP/*Account1_0822222222*", " >> thedid=""NodePhone"<sip:*0811111111*@sip.internode.on.net>"") in new >> stack >> But "Account1_*0822222222*" (as the name suggests) has a phone number >> of "*0822222222*" and not "*0811111111*". >> >> So Sam's call will come through and be routed to the correct handset as >> the business needs, but it seems that all incoming calls are being labeled >> as though coming in on a different account. The effective problem is that >> the calledID is now wrong. >> >> I'm after some general advice on how to handle the problem. >> >> Ta, >> >> >> -Andrew >> >> >> >> >> -- >> _____________________________________________________________________ >> -- Bandwidth and Colocation Provided by http://www.api-digital.com -- >> New to Asterisk? Join us for a live introductory webinar every Thurs: >> http://www.asterisk.org/hello >> >> asterisk-users mailing list >> To UNSUBSCRIBE or update options visit: >> http://lists.digium.com/mailman/listinfo/asterisk-users >> > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20150408/a60f5042/attachment.html>
Andres
2015-Apr-08 02:35 UTC
[asterisk-users] Asterisk Inbound calls, multiple SIP accounts, calledID
On 4/7/15 7:48 PM, Andrew Galdes wrote:> Hi Dmitriy and others and thanks for your help so far. > > The option "match_auth_username=yes" seems to have had no effect. From > my reading, this option will try to match the username of the incoming > SIP account to a section heading. If that is how it must work then i > can see a big problem. I'm trying to present the receptionist with a > nice display of which line the call came in on. For example, the > receptionist answers calls for 8 different companies and would like > the phone to display the company name that she should announce to the > caller. > > Here is a more complete output of an incoming call. I've changed the > SIP numbers to "Company1', etc, to hide the numbers. > > Connected to Asterisk 10.12.4 currently running on asterisk (pid > 32267) > Verbosity is at least 12 > asterisk*CLI> > asterisk*CLI> > asterisk*CLI> > == Using SIP RTP CoS mark 5 > -- Executing [s at incoming:1] *Set*("*SIP/Company1-00000797*", > "*thedid=""NodePhone"<sip:Company2 at sip.internode.on.net > <mailto:sip%3ACompany2 at sip.internode.on.net>>"*") in new stack > -- Executing [s at incoming:2] > *Set*("*SIP/**Company1**-00000797*", > "*pseudodid="NodePhone"<sip:** sip:Company2**@sip.internode.on.net > <http://sip.internode.on.net>>*") in new stack > -- Executing [s at incoming:3] > *Set*("*SIP/**Company1**-00000797*", > "*pseudodid="NodePhone"<sip:** sip:Company2*") in new stack > -- Executing [s at incoming:4] > *Set*("*SIP/**Company1**-00000797*", > "*pseudodid=** sip:Company2*") in new stack > -- Executing [s at incoming:5] > *GotoIf*("*SIP/**Company1**-00000797*", "*0?internal,33,1:6*") in > new stack > -- Goto (incoming,s,6) > -- Executing [s at incoming:6] > *GotoIf*("*SIP/**Company1**-00000797*", "*0?internal,88,1:7*") in > new stack > -- Goto (incoming,s,7) > -- Executing [s at incoming:7] > *GotoIf*("*SIP/**Company1**-00000797*", "*0?internal,36,1:8*") in > new stack > -- Goto (incoming,s,8) > -- Executing [s at incoming:8] > *GotoIf*("*SIP/**Company1**-00000797*", "*1?internal,36,1:9*") in > new stack > -- Goto (internal,36,1) > -- Executing [36 at internal:1] > *Set*("*SIP/**Company1**-00000797*", > "*CALLERID(name)=SIP/**Company1**-00000797*") in new stack > -- Executing [36 at internal:2] > *Dial*("*SIP/**Company1**-00000797*", "*SIP/36,20*") in new stack > == Using SIP RTP CoS mark 5 > -- Called SIP/36 > -- SIP/36-00000798 is ringing > == Spawn extension (internal, 36, 2) exited non-zero on > 'SIP/Company1-00000797' > asterisk*CLI> exit > > > And here is the "sip.conf": > > [general] > match_auth_username=yes > register=081...:... at sip.internode.on.net/s > <http://081...:... at sip.internode.on.net/s> > register=082...:... at sip.internode.on.net/s > <http://082...:... at sip.internode.on.net/s> > register=083...:... at sip.internode.on.net:/s > register=084...:... at sip.internode.on.net:/s > register=085...:... at sip.internode.on.net/s > <http://085...:... at sip.internode.on.net/s> > register=086...:... at sip.internode.on.net/s > <http://086...:... at sip.internode.on.net/s> > register=087...:... at sip.internode.on.net/s > <http://087...:... at sip.internode.on.net/s> > register=088...:... at sip.internode.on.net/s > <http://088...:... at sip.internode.on.net/s> > > [Company1] > username=081... > fromuser=081... > secret=... > canreinvite=no > qualify=yes > context=incoming > type=friend > insecure=invite,port > fromdomain=sip.internode.on.net <http://sip.internode.on.net> > host=sip.internode.on.net <http://sip.internode.on.net> > dtmfmode=rfc2833 > disallow=all > allow=alaw > allow=ulaw > allow=g729 > bindport=5060 > bindaddr=0.0.0.0 > nat=yes > registertimeout=5 > allowoverlap=no > srvlookup=no > ubscribecontext=from-sip > callcounter=yes > > [Company2] > ... > [Company3] > ... > [Company4] > ... > > And here is some of the "extensions.conf" file: > > [incoming] > ; Get the DID number from the TO header. > exten => s,1,Set(thedid="${SIP_HEADER(TO)}") > exten => s,2,Set(pseudodid=${SIP_HEADER(To)}) > exten => s,3,Set(pseudodid=${CUT(pseudodid,@,1)}) > exten => s,4,Set(pseudodid=${CUT(pseudodid,:,2)}) > > > ; Direct the DID accordingly. > exten => s,5,GotoIf($["${pseudodid}" = "081"]?internal,33,1:6) > exten => s,6,GotoIf($["${pseudodid}" = "082"]?internal,88,1:7) > exten => s,7,GotoIf($["${pseudodid}" = "083"]?internal,36,1:8) > exten => s,8,GotoIf($["${pseudodid}" = "084"]?internal,36,1:9) > exten => s,9,GotoIf($["${pseudodid}" = "085"]?internal,36,1:10) > exten => s,10,GotoIf($["${pseudodid}" = "086"]?internal,89,1:11) > exten => s,11,GotoIf($["${pseudodid}" = "087"]?internal,36,1:12) > exten => s,12,GotoIf($["${pseudodid}" = "088"]?internal,13,1:13) > >Since your objective is to have the receptionist identify the company she should be answering to then might I suggest a simple workaround to your problem. Since right here you are already sending the call to the expected internal context and extension, you could simply alter the Caller Name and put in the Company Name so she could see it on the screen. Something like: [internal] exten => 33,1,Set(CALLERID(name)=Company1:${CALLERID}) ... exten => 88,1,Set(CALLERID(name)=Company2:${CALLERID}) ... exten => 36,1,Set(CALLERID(name)=Company3:${CALLERID}) ... etc... That will display the Company Name you want to see followed by the caller ID #> > -Andrew Galdes > > > On Thu, Apr 2, 2015 at 3:46 PM, Dmitriy Serov <serov.d.p at gmail.com > <mailto:serov.d.p at gmail.com>> wrote: > > > This is one of the chronic problems. Try this option in sip.conf: > match_auth_username=yes > > Carefully read the description, it is better to test in "after hours". > > 02.04.2015 2:50, Andrew Galdes ?????: >> Hello all, >> >> I have an Asterisk server (Asterisk 10.12.4) with multiple sip >> accounts with the same service provides. We have 8 phone numbers >> in total. >> >> Incoming calls from the public are all correctly directed to >> appropriate office handsets. However, the display on the >> reception phone (the only one i care about) is always showing the >> same "SIP/Account1_0843214321" rather than the account >> representing the number dialed. >> >> For-instance, if Sam on her mobile calls "*0811111111*", Asterisk >> will show a log entry like the following: >> >> -- Executing [s at incoming:1] Set("SIP/*Account1_0822222222*", >> "thedid=""NodePhone"<sip:*0811111111*@sip.internode.on.net >> <http://sip.internode.on.net>>"") in new stack >> >> But "Account1_*0822222222*" (as the name suggests) has a phone >> number of "*0822222222*" and not "*0811111111*". >> >> So Sam's call will come through and be routed to the correct >> handset as the business needs, but it seems that all incoming >> calls are being labeled as though coming in on a different >> account. The effective problem is that the calledID is now wrong. >> >> I'm after some general advice on how to handle the problem. >> >> Ta, >> >> >> -Andrew >> >> > > > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > > > >-- Technical Support http://www.cellroute.net -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20150407/5d9e1a17/attachment-0001.html>
Dmitriy Serov
2015-Apr-08 05:45 UTC
[asterisk-users] Asterisk Inbound calls, multiple SIP accounts, calledID
Hi, Andrew. You are trying to solve two tasks: definition through what line the call came and a beautiful display of this information. 1. definition through what line the call came. If the username and password for inbound and outbound registration the same, then try the following: a) delete "register" lines. b) add option "callbackextension=Company1" to Company1 friend section.. And in others with their names too. or you can change "/s" to "/Company1" in register line. 2. beautiful display of this information a) add option "setvar=fromCompany=Company1" to Company1 friend section.. b) In dialplan add Set(CALLERID(name)=${fromCompany} ${CALLERID(name)}) Maybe this will help? Dmitiy. 08.04.2015 2:48, Andrew Galdes ?????:> Hi Dmitriy and others and thanks for your help so far. > > The option "match_auth_username=yes" seems to have had no effect. From > my reading, this option will try to match the username of the incoming > SIP account to a section heading. If that is how it must work then i > can see a big problem. I'm trying to present the receptionist with a > nice display of which line the call came in on. For example, the > receptionist answers calls for 8 different companies and would like > the phone to display the company name that she should announce to the > caller. > > Here is a more complete output of an incoming call. I've changed the > SIP numbers to "Company1', etc, to hide the numbers. > > Connected to Asterisk 10.12.4 currently running on asterisk (pid > 32267) > Verbosity is at least 12 > asterisk*CLI> > asterisk*CLI> > asterisk*CLI> > == Using SIP RTP CoS mark 5 > -- Executing [s at incoming:1] *Set*("*SIP/Company1-00000797*", > "*thedid=""NodePhone"<sip:Company2 at sip.internode.on.net > <mailto:sip%3ACompany2 at sip.internode.on.net>>"*") in new stack > -- Executing [s at incoming:2] > *Set*("*SIP/**Company1**-00000797*", > "*pseudodid="NodePhone"<sip:** sip:Company2**@sip.internode.on.net > <http://sip.internode.on.net>>*") in new stack > -- Executing [s at incoming:3] > *Set*("*SIP/**Company1**-00000797*", > "*pseudodid="NodePhone"<sip:** sip:Company2*") in new stack > -- Executing [s at incoming:4] > *Set*("*SIP/**Company1**-00000797*", > "*pseudodid=** sip:Company2*") in new stack > -- Executing [s at incoming:5] > *GotoIf*("*SIP/**Company1**-00000797*", "*0?internal,33,1:6*") in > new stack > -- Goto (incoming,s,6) > -- Executing [s at incoming:6] > *GotoIf*("*SIP/**Company1**-00000797*", "*0?internal,88,1:7*") in > new stack > -- Goto (incoming,s,7) > -- Executing [s at incoming:7] > *GotoIf*("*SIP/**Company1**-00000797*", "*0?internal,36,1:8*") in > new stack > -- Goto (incoming,s,8) > -- Executing [s at incoming:8] > *GotoIf*("*SIP/**Company1**-00000797*", "*1?internal,36,1:9*") in > new stack > -- Goto (internal,36,1) > -- Executing [36 at internal:1] > *Set*("*SIP/**Company1**-00000797*", > "*CALLERID(name)=SIP/**Company1**-00000797*") in new stack > -- Executing [36 at internal:2] > *Dial*("*SIP/**Company1**-00000797*", "*SIP/36,20*") in new stack > == Using SIP RTP CoS mark 5 > -- Called SIP/36 > -- SIP/36-00000798 is ringing > == Spawn extension (internal, 36, 2) exited non-zero on > 'SIP/Company1-00000797' > asterisk*CLI> exit > > > And here is the "sip.conf": > > [general] > match_auth_username=yes > register=081...:... at sip.internode.on.net/s > <http://081...:... at sip.internode.on.net/s> > register=082...:... at sip.internode.on.net/s > <http://082...:... at sip.internode.on.net/s> > register=083...:... at sip.internode.on.net:/s > register=084...:... at sip.internode.on.net:/s > register=085...:... at sip.internode.on.net/s > <http://085...:... at sip.internode.on.net/s> > register=086...:... at sip.internode.on.net/s > <http://086...:... at sip.internode.on.net/s> > register=087...:... at sip.internode.on.net/s > <http://087...:... at sip.internode.on.net/s> > register=088...:... at sip.internode.on.net/s > <http://088...:... at sip.internode.on.net/s> > > [Company1] > username=081... > fromuser=081... > secret=... > canreinvite=no > qualify=yes > context=incoming > type=friend > insecure=invite,port > fromdomain=sip.internode.on.net <http://sip.internode.on.net> > host=sip.internode.on.net <http://sip.internode.on.net> > dtmfmode=rfc2833 > disallow=all > allow=alaw > allow=ulaw > allow=g729 > bindport=5060 > bindaddr=0.0.0.0 > nat=yes > registertimeout=5 > allowoverlap=no > srvlookup=no > ubscribecontext=from-sip > callcounter=yes > > [Company2] > ... > [Company3] > ... > [Company4] > ... > > And here is some of the "extensions.conf" file: > > [incoming] > ; Get the DID number from the TO header. > exten => s,1,Set(thedid="${SIP_HEADER(TO)}") > exten => s,2,Set(pseudodid=${SIP_HEADER(To)}) > exten => s,3,Set(pseudodid=${CUT(pseudodid,@,1)}) > exten => s,4,Set(pseudodid=${CUT(pseudodid,:,2)}) > > > ; Direct the DID accordingly. > exten => s,5,GotoIf($["${pseudodid}" = "081"]?internal,33,1:6) > exten => s,6,GotoIf($["${pseudodid}" = "082"]?internal,88,1:7) > exten => s,7,GotoIf($["${pseudodid}" = "083"]?internal,36,1:8) > exten => s,8,GotoIf($["${pseudodid}" = "084"]?internal,36,1:9) > exten => s,9,GotoIf($["${pseudodid}" = "085"]?internal,36,1:10) > exten => s,10,GotoIf($["${pseudodid}" = "086"]?internal,89,1:11) > exten => s,11,GotoIf($["${pseudodid}" = "087"]?internal,36,1:12) > exten => s,12,GotoIf($["${pseudodid}" = "088"]?internal,13,1:13) > > > > -Andrew Galdes > > > On Thu, Apr 2, 2015 at 3:46 PM, Dmitriy Serov <serov.d.p at gmail.com > <mailto:serov.d.p at gmail.com>> wrote: > > > This is one of the chronic problems. Try this option in sip.conf: > match_auth_username=yes > > Carefully read the description, it is better to test in "after hours". > > 02.04.2015 2:50, Andrew Galdes ?????: >> Hello all, >> >> I have an Asterisk server (Asterisk 10.12.4) with multiple sip >> accounts with the same service provides. We have 8 phone numbers >> in total. >> >> Incoming calls from the public are all correctly directed to >> appropriate office handsets. However, the display on the >> reception phone (the only one i care about) is always showing the >> same "SIP/Account1_0843214321" rather than the account >> representing the number dialed. >> >> For-instance, if Sam on her mobile calls "*0811111111*", Asterisk >> will show a log entry like the following: >> >> -- Executing [s at incoming:1] Set("SIP/*Account1_0822222222*", >> "thedid=""NodePhone"<sip:*0811111111*@sip.internode.on.net >> <http://sip.internode.on.net>>"") in new stack >> >> But "Account1_*0822222222*" (as the name suggests) has a phone >> number of "*0822222222*" and not "*0811111111*". >> >> So Sam's call will come through and be routed to the correct >> handset as the business needs, but it seems that all incoming >> calls are being labeled as though coming in on a different >> account. The effective problem is that the calledID is now wrong. >> >> I'm after some general advice on how to handle the problem. >> >> Ta, >> >> >> -Andrew >> >> > > > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20150408/5c0d69b9/attachment.html>
Salaheddine Elharit
2015-Apr-08 15:34 UTC
[asterisk-users] Asterisk Inbound calls, multiple SIP accounts, calledID
what about exten => s,1,Goto(from-trunk,${CUT(CUT(SIP_HEADER(To),@,1),:,2)},1) regards 2015-04-08 5:45 GMT+00:00 Dmitriy Serov <serov.d.p at gmail.com>:> Hi, Andrew. > > You are trying to solve two tasks: definition through what line the call > came and a beautiful display of this information. > 1. definition through what line the call came. If the username and > password for inbound and outbound registration the same, then try the > following: > a) delete "register" lines. > b) add option "callbackextension=Company1" to Company1 friend section.. > And in others with their names too. > or you can change "/s" to "/Company1" in register line. > > 2. beautiful display of this information > a) add option "setvar=fromCompany=Company1" to Company1 friend section.. > b) In dialplan add > Set(CALLERID(name)=${fromCompany} ${CALLERID(name)}) > > Maybe this will help? > > Dmitiy. > > 08.04.2015 2:48, Andrew Galdes ?????: > > Hi Dmitriy and others and thanks for your help so far. > > The option "match_auth_username=yes" seems to have had no effect. From > my reading, this option will try to match the username of the incoming SIP > account to a section heading. If that is how it must work then i can see a > big problem. I'm trying to present the receptionist with a nice display of > which line the call came in on. For example, the receptionist answers calls > for 8 different companies and would like the phone to display the company > name that she should announce to the caller. > > Here is a more complete output of an incoming call. I've changed the SIP > numbers to "Company1', etc, to hide the numbers. > > Connected to Asterisk 10.12.4 currently running on asterisk (pid = 32267) >> Verbosity is at least 12 >> asterisk*CLI> >> asterisk*CLI> >> asterisk*CLI> >> == Using SIP RTP CoS mark 5 >> -- Executing [s at incoming:1] *Set*("*SIP/Company1-00000797*", "*thedid=""NodePhone"<sip:Company2 at sip.internode.on.net >> <sip%3ACompany2 at sip.internode.on.net>>"*") in new stack >> -- Executing [s at incoming:2] *Set*("*SIP/**Company1**-00000797*", " >> *pseudodid="NodePhone"<sip:** sip:Company2**@sip.internode.on.net >> <http://sip.internode.on.net>>*") in new stack >> -- Executing [s at incoming:3] *Set*("*SIP/**Company1**-00000797*", " >> *pseudodid="NodePhone"<sip:** sip:Company2*") in new stack >> -- Executing [s at incoming:4] *Set*("*SIP/**Company1**-00000797*", " >> *pseudodid=** sip:Company2*") in new stack >> -- Executing [s at incoming:5] *GotoIf*("*SIP/**Company1**-00000797*", " >> *0?internal,33,1:6*") in new stack >> -- Goto (incoming,s,6) >> -- Executing [s at incoming:6] *GotoIf*("*SIP/**Company1**-00000797*", " >> *0?internal,88,1:7*") in new stack >> -- Goto (incoming,s,7) >> -- Executing [s at incoming:7] *GotoIf*("*SIP/**Company1**-00000797*", " >> *0?internal,36,1:8*") in new stack >> -- Goto (incoming,s,8) >> -- Executing [s at incoming:8] *GotoIf*("*SIP/**Company1**-00000797*", " >> *1?internal,36,1:9*") in new stack >> -- Goto (internal,36,1) >> -- Executing [36 at internal:1] *Set*("*SIP/**Company1**-00000797*", " >> *CALLERID(name)=SIP/**Company1**-00000797*") in new stack >> -- Executing [36 at internal:2] *Dial*("*SIP/**Company1**-00000797*", " >> *SIP/36,20*") in new stack >> == Using SIP RTP CoS mark 5 >> -- Called SIP/36 >> -- SIP/36-00000798 is ringing >> == Spawn extension (internal, 36, 2) exited non-zero on >> 'SIP/Company1-00000797' >> asterisk*CLI> exit > > > And here is the "sip.conf": > > [general] >> match_auth_username=yes >> register=081...:... at sip.internode.on.net/s >> register=082...:... at sip.internode.on.net/s >> register=083...:... at sip.internode.on.net:/s >> register=084...:... at sip.internode.on.net:/s >> register=085...:... at sip.internode.on.net/s >> register=086...:... at sip.internode.on.net/s >> register=087...:... at sip.internode.on.net/s >> register=088...:... at sip.internode.on.net/s >> >> [Company1] >> username=081... >> fromuser=081... >> secret=... >> canreinvite=no >> qualify=yes >> context=incoming >> type=friend >> insecure=invite,port >> fromdomain=sip.internode.on.net >> host=sip.internode.on.net >> dtmfmode=rfc2833 >> disallow=all >> allow=alaw >> allow=ulaw >> allow=g729 >> bindport=5060 >> bindaddr=0.0.0.0 >> nat=yes >> registertimeout=5 >> allowoverlap=no >> srvlookup=no >> ubscribecontext=from-sip >> callcounter=yes > > > > [Company2] >> ... >> [Company3] >> ... >> [Company4] >> ... > > And here is some of the "extensions.conf" file: > > [incoming] >> ; Get the DID number from the TO header. >> exten => s,1,Set(thedid="${SIP_HEADER(TO)}") >> exten => s,2,Set(pseudodid=${SIP_HEADER(To)}) >> exten => s,3,Set(pseudodid=${CUT(pseudodid,@,1)}) >> exten => s,4,Set(pseudodid=${CUT(pseudodid,:,2)}) > > >> ; Direct the DID accordingly. >> exten => s,5,GotoIf($["${pseudodid}" = "081"]?internal,33,1:6) >> exten => s,6,GotoIf($["${pseudodid}" = "082"]?internal,88,1:7) >> exten => s,7,GotoIf($["${pseudodid}" = "083"]?internal,36,1:8) >> exten => s,8,GotoIf($["${pseudodid}" = "084"]?internal,36,1:9) >> exten => s,9,GotoIf($["${pseudodid}" = "085"]?internal,36,1:10) >> exten => s,10,GotoIf($["${pseudodid}" = "086"]?internal,89,1:11) >> exten => s,11,GotoIf($["${pseudodid}" = "087"]?internal,36,1:12) >> exten => s,12,GotoIf($["${pseudodid}" = "088"]?internal,13,1:13) > > > > -Andrew Galdes > > > On Thu, Apr 2, 2015 at 3:46 PM, Dmitriy Serov <serov.d.p at gmail.com> wrote: > >> >> This is one of the chronic problems. Try this option in sip.conf: >> match_auth_username=yes >> >> Carefully read the description, it is better to test in "after hours". >> >> 02.04.2015 2:50, Andrew Galdes ?????: >> >> Hello all, >> >> I have an Asterisk server (Asterisk 10.12.4) with multiple sip accounts >> with the same service provides. We have 8 phone numbers in total. >> >> Incoming calls from the public are all correctly directed to >> appropriate office handsets. However, the display on the reception phone >> (the only one i care about) is always showing the same >> "SIP/Account1_0843214321" rather than the account representing the number >> dialed. >> >> For-instance, if Sam on her mobile calls "*0811111111*", Asterisk will >> show a log entry like the following: >> >> -- Executing [s at incoming:1] Set("SIP/*Account1_0822222222*", " >> thedid=""NodePhone"<sip:*0811111111*@sip.internode.on.net>"") in new >> stack >> But "Account1_*0822222222*" (as the name suggests) has a phone number >> of "*0822222222*" and not "*0811111111*". >> >> So Sam's call will come through and be routed to the correct handset as >> the business needs, but it seems that all incoming calls are being labeled >> as though coming in on a different account. The effective problem is that >> the calledID is now wrong. >> >> I'm after some general advice on how to handle the problem. >> >> Ta, >> >> >> -Andrew >> >> >> >> >> -- >> _____________________________________________________________________ >> -- Bandwidth and Colocation Provided by http://www.api-digital.com -- >> New to Asterisk? Join us for a live introductory webinar every Thurs: >> http://www.asterisk.org/hello >> >> asterisk-users mailing list >> To UNSUBSCRIBE or update options visit: >> http://lists.digium.com/mailman/listinfo/asterisk-users >> > > > > > > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20150408/3de27a67/attachment.html>
John Kiniston
2015-Apr-08 17:02 UTC
[asterisk-users] Asterisk Inbound calls, multiple SIP accounts, calledID
Andrew, Instead of your SET and GOTO blocks I'd recommend using the Asterisk DB to make things easier to maintain. You could make two database entries for each of your DID's database put 4259981810 name JohnPersonal database put 4259981810 target kiniston-extern,john-personal,1 Then you could do a single block that would do the lookup and call routing: Set(DESTINATION=${CUT(PASSTHRU(${SIP_HEADER(TO):5}),@,1)}) Set(CALLERID(name)=${DB(${DESTINATION}/name)}) Goto(${DB(${DESTINATION}/target)}) On Tue, Apr 7, 2015 at 6:06 PM, Andrew Galdes <andrew.galdes at agix.com.au> wrote:> Solved it, kinda. It's not cute. I'm sure this is the way NOT to do it but > it does work. For prosperity, the SIP service is through Internode. > > Here is my "extensions.conf" file: > > exten => s,5,Set(callersname=${IF($[ ${pseudodid} > 081...]?Company1:${callersname})}) > exten => s,6,Set(callersname=${IF($[ ${pseudodid} > = 082...]?Company2:${callersname})}) > > exten => s,13,GotoIf($["${callersname}" = "Company1"]?internal,36,1:14); > to reception > exten => s,14,GotoIf($["${callersname}" = "Company2"]?internal,88,1:15); > to department1 > > And later in same file: > > ; Phone 36 reception >> *exten => 36,1,Set(CALLERID(name)=${callersname})* >> exten => 36,n,Dial(SIP/36,20) >> exten => 36,n,VoiceMail(36,u) >> exten => 36,n,Hangup > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20150408/eaf2466b/attachment.html>
Reasonably Related Threads
- Asterisk Inbound calls, multiple SIP accounts, calledID
- Asterisk Inbound calls, multiple SIP accounts, calledID
- Asterisk Inbound calls, multiple SIP accounts, calledID
- Asterisk Inbound calls, multiple SIP accounts, calledID
- Asterisk Voicemail Realtime and 'VirtualBoxing'