> 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 _______________________________________________ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users