[asterisk-users] Asterisk Inbound calls, multiple SIP accounts, calledID

Andrew Galdes andrew.galdes at agix.com.au
Tue Apr 7 20:06:04 CDT 2015


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,Hangup


Ta,


-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>


More information about the asterisk-users mailing list