[asterisk-users] PARAMETERS FOR DID'S FROM TELCOM AND ASTERISK TO SYNC
A J Stiles
asterisk_list at earthshod.co.uk
Tue Sep 6 10:07:02 CDT 2011
On Tuesday 06 September 2011, mahesh katta wrote:
> Thanks For reply A.J sir.
> no result with this sir
OK. "no result" isn't very helpful.
I'm presuming you've got internal calls between SIP extensions working
correctly, and something happens (even if it's not exactly what you want)
when you call an inbound number. If not, get at least this much working first.
I'm also presuming that you know a few things about dialplans, and can make
appropriate substitutions in your head.
In your chan_dahdi.conf, what is the name of the context associated with the
span to which the ISDN is connected? (I assumed in my example that the
relevant context was called "from-pstn".) Make a note of this.
Now make a copy of your existing extensions.conf, then open the original in a
text editor. In the context where calls from the ISDN line arrive, create the
following extension:
exten => .X_,1,NoOp(Incoming call for '${EXTEN} from ${CALLERID(num)}')
exten => .X_,n,Hangup()
Open an Asterisk console with maximum verbosity, run "dialplan reload", call
an inbound number from a mobile phone and you should get a message something
like
"Incoming call for '01332268901' from '07892101232'"
with some or all of the number you dialled and your mobile number, just before
the call disconnects. (If not, then something else is wrong.)
Now you know how much of the dialled number the phone company are sending you
(complete number / number without leading 0 / local number without STD code).
Next, determine what the rule is going to be to link the dialled number in
${EXTEN} to an individual internal extension (in my example, I assumed that
the rule was: "2" followed by the last 2 digits of the "external" number)
and devise a dialplan expression that will set a variable to that. (If you
don't know how to do this, please ask, giving some examples I can work from.)
Now, between the "NoOp()" and the "Hangup()" lines in our minimal context as
above, insert lines to set a variable from your expression and another NoOp()
to display its value.
Open an Asterisk console with maximum verbosity, run "dialplan reload" again
to make sure you are using the correct dialplan, call an inbound number from a
mobile phone, and this time you should get another message with the internal
extension number you want to call. Check it with as many numbers as you can
afford to waste credit on.
When you're sure that you have your formula working, add a Dial() statement
which will dial that number. If you want, remove the NoOp() statements;
remember to make the statement which is now first, priority 1 instead of n.
Again, run "dialplan reload" before you make an inbound call, just to ensure
you are using the latest edited dialplan.
That should sort the incoming side. On the outgoing side, you need to write a
dialplan expression which will set CALLERID(num) to whatever "external" number
is associated with an internal extension (which will be in ${CALLERID(num)}
-- sorry, I made a mistake and put ${EXTEN} in my first example). basically
the inverse of the first rule. Then put this into your context which is used
for outgoing calls.
If any of this is going over your head, please ask for clarification. (My
preference is generally to overestimate someone's abilities and rely on them
asking questions if lost, rather than sound like I am patronising them.)
--
AJS
Answers come *after* questions.
More information about the asterisk-users
mailing list