[Asterisk-Users] Caller-ID for alphanumeric SIP uris

John Todd jtodd at loligo.com
Tue May 11 22:41:49 MST 2004


At 3:02 PM -0700 on 5/11/04, David Beckemeyer wrote:
>My first post here, so a brief intro:
>
>I'm somewhat new to Asterisk, but have been working with SIP
>in depth for about 3 years.  I studied Asterisk for about a year
>and have been experimenting with it hands-on for the past
>month or so.  I've done 6 Asterisk installs in wildly different
>roles/applications, some of them test systems, others in
>semi-production, so I know a little bit about it.  I've setup
>voicemail, meetme, ENUM, and other Asterisk features, and I've
>written some AGI scripts and done some other semi-interesting
>tweaks.
>
>That said, I'm curious about how others might solve the following
>problem.  In a pure-SIP environment, if a user has an alphanumeric
>SIP uri, say sip:joe at sipservice1.com, when that user calls another
>SIP phone, (a real IP phone, as opposed to an ATA), via a SIP proxy,
>that phone can log the full URI, and 'call return' works because the
>SIP phone calls that URI.  With Asterisk, such a call would come in
>with the SIP From: header (thus Caller-ID in Asterisk parlance) as
>something like:
>
>   From: "joe" <sip:asterisk at 204.16.112.70>;tag=as54f3792a
>
>In this case, Asterisk doesn't know how to return the call, nor
>does the SIP phone, because even if the SIP phone can dial full
>alphanumeric URI's with some kind of a 'call return' feature,
>the sip:asterisk at 204.16.112.70 (where 204.16.112.70 would be the
>IP address of the Asterisk server), isn't a valid URI and doesn't
>route a call to the original SIP URI: sip:joe at sipservice1.com.
>
>I've thought of some tricks for handling this, and I've looked
>around the archives and Google searches, but haven't seen much
>discussion of this issue.
>
>TIA,
>
>David

David -
   You're correct.  This is an unfortunate side effect of Asterisk not 
really being a SIP proxy.  It's a PBX replacement.  Now, I understand 
that Olle's chan_sip2 has some of this type of feature functionality 
built into it, and you may want to take a look at that.

   In the interim, there are some really awful, terrible, horrendous 
tricks you can do that might work around this problem.  It involves 
snagging the SIP URI on the inbound call, pushing it into a database, 
assigning a pseudo-random number to that entry, and then keeping that 
mapping... forever.  If a user hit the "redial" button, then the 
inverse would happen: your Asterisk server would dig through the 
database looking for the key, find the 'real' SIP URI, and re-route 
the call to the appropriate correct endpoint.  Uuuuugly.

JT



More information about the asterisk-users mailing list