[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