[asterisk-users] Modification of Caller ID based on context

arkda thrills3k3r at gmail.com
Tue Jun 26 18:41:05 CDT 2007


Great examples Matthew, really appreciate it. This is exactly what I've been
searching for!

On 6/26/07, Matthew Brothers <matthew at brothersfamily.net> wrote:
>
> > Hi,
> >
> > I have been looking for an example of accomplishing this, but
> > I've been unable to locate something similar to what I'm trying
> > to do.
> >
> > Here's the scenario:
> >
> > Users caller ID is set to their internal extension (200-250).
> > This is set in sip.conf for each user. Each user has a local DID
> > as well (hosted through Vitelity, for example (555)111-2222). The
> >  problem is that this extension was being passed to the outside
> > world. I currently have a SetCallerID command changing the
> > CallerID to our main office number, but some users want their DID
> >  sent, not the general number.
> >
> > The problem is that if their caller ID is set to their DID, when
> > users hit redial on their phones internally they dial out and
> > back in. I corrected this by putting each DID in extensions.conf
> > under their three digit extension, but that seems a bit like a
> > kludge obviously.
> >
> > I'm looking for a method of sending the internal three digit
> > extension only when a user is dialing another user internally,
> > otherwise it will send their DID. Is their a method to do this in
> >  the dial plan? Anyone have an example of how to accomplish this?
> >
> >
> > Thanks in advance.
>
>
> Mike,
>
> I have a similar setup (I even use Vitel) and the easiest and
> cleanest method that I have found to accomplish this is with the
> AstDB. You can simply create a cross-reference of DIDs and Internal
> extensions similar to extdid/200 => 5551112222 ... extdid/250 =>
> 5551112272 in the AstDB. Then you can change your outgoing dialplan
> to change the caller id based upon this cross reference. Example:
>
>
> exten => NXXNXXXXXX,n,Set(outgoingCID=<MAINNUMBER>)
>
> exten => NXXNXXXXXX,n,
> GotoIf($[ ${DB_EXISTS(extdid/${CALLERID(num)})} = 0 ]?makecall)
>
> exten => NXXNXXXXXX,n,
> Set(outgoingCID=${DB(extdid/${CALLERID(num)})})
>
> exten => NXXNXXXXXX,n(makecall),Set(CALLERID(num)=${outgoingCID})
>
> ...
>
> You could even simplify your incoming context by cross-referencing
> in the other direction. That is didext/5551112222 => 200 ...
> didext/5551112272 => 250.
>
> exten => NXXNXXXXXX,n,
> Goto(internal-extensions,${DB(didext/${EXTEN})},1)
>
> OR you could do something similar with LOCAL channels or with a Dial
> command.
>
> -Matthew
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20070626/70f82a27/attachment.htm 


More information about the asterisk-users mailing list