[asterisk-ss7] chan_ss7 SAM and overlap signaling

Ercan Yücebas ercan at goldenphone.ch
Thu Mar 1 03:31:20 MST 2007


I see

For example here in switzerland you can have only 24 digits in a number
in the network at all, more then this will be not transferred by the
incumbent operator. Particulary in my case i need only one SAM, 1
additional information message after IAM, this will be enough, I think.

For what else is the t35 timer used in the source code? What kind of
effect is to expect if we modify the value of this timer?

It's solely in the responsibility of the switch before us, send us the
information, that sending digits is finished. On the other side, we have
to exactly understand, what we will expect from the other switch. You
are saying, that it will terminate the number with a 0xF 'digit', which
is the pvt->iam.dni.complete condition.

What do you mean exactly with

0xF 'digit'       what is this correctly, what do you mean, how we can
capture it, in order to know, that digits are collected already.

and does this object became a value added, can we add maybe a debug
option for it, to see the changes of this value during SAM recieptions 

pvt->iam.dni.complete



BR
Ercan







-----Original Message-----
From: asterisk-ss7-bounces at lists.digium.com
[mailto:asterisk-ss7-bounces at lists.digium.com] On Behalf Of Kristian
Nielsen
Sent: Donnerstag, 1. März 2007 08:28
To: asterisk-ss7 at lists.digium.com
Subject: Re: [asterisk-ss7] chan_ss7 SAM and overlap signaling

Ercan Yücebas <ercan at goldenphone.ch> writes:

> It looks like that chan_ss7 is checking whether the incoming number
> matches any extension, just before it gets the whole number?
> Therefore chan_ss7 doesn’t expect other SAM's, because there is not a
> matching extension
> After that it never goes to second choise, where it starts the timer,
> RIGHT?
> 
> My ;
> enable_st is yes
> 
> 
> static void check_iam_sam(struct ss7_chan* pvt)
> {
>   int complete = (pvt->link->linkset->enable_st &&
> pvt->iam.dni.complete) ||
>     ast_exists_extension(pvt->owner, pvt->context, pvt->iam.dni.num,
1,
> pvt->iam.rni.num);
>   if (complete) {
>     pvt->iam.dni.complete = 1;
>     ast_log(LOG_DEBUG, "Setting iam.dni.complete\n");
>     handle_complete_address(pvt);
>   } else {
>     if (ast_canmatch_extension(pvt->owner, pvt->context,
> pvt->iam.dni.num, 1, pvt->iam.rni.num) != 0) {
>       ast_log(LOG_DEBUG, "Processing addr %s, incomplete, starting
> T35\n", pvt->iam.dni.num);
>       t35_start(pvt);
>     }
>     else {
>       ast_log(LOG_DEBUG, "Unable to match extension, context: %s, dni:
> %s, rni: %s\n", pvt->context, pvt->iam.dni.num, pvt->iam.rni.num);
>       initiate_release_circuit(pvt, AST_CAUSE_UNALLOCATED);
>     }
>   }
> }

First, you need to determine who has the responsibility of determining
how
many digits are needed for a complete address.

If it is a switch before you, then it will terminate the number with a
0xF
'digit', which is the pvt->iam.dni.complete condition I think.

If not, then _you_ need to determine if the address is complete, as the
further path into Asterisk does not support overlapped dialing.

This of course can get a bit complex, for example when people set up a
local
gateway for cheap international calls, the number of digits required can
require detailed knowledge about the dial plan in individual contries. I
think
some people try to handle that instead with timeouts (there is some
timer for
this I believe), but it is not ideal.

I believe the above code tries to determine whether the address is
complete by
examining the Asterisk dial plan and seeing if there is a match. You
probably
have overlapping extensions there, causing an early match.

Basically, to support overlapped dialing, you clearly cannot have
overlapping
numbers like '220' and 220123', as then there is no way of knowing,
after user
dials '220', whether more digits are supposed to arrive.

 - Kristian.

-- 
Kristian Nielsen, Software Developer
MySQL AB, Hvidovre, Denmark, www.mysql.com
Office: +46 18 174 400 ext. 4525
Are you MySQL certified?  www.mysql.com/certification

_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

asterisk-ss7 mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-ss7



More information about the asterisk-ss7 mailing list