[Asterisk-Dev] CVS HEAD not compiling:

2004-11-29 Thread Linus Surguy
It appears that CVS HEAD is not currently compiling! I don't think I'm doing 
anything stupid:

libpri:
iax1:/usr/src/libpri # make install
Makefile:92: .depend: No such file or directory
./mkdep -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g   `ls *.c`
cc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o pri.o 
pri.c
cc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o 
q921.o q921.c
cc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o 
prisched.o prisched.c
cc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o 
q931.o q931.c
q931.c: In function `receive_generic_digits':
q931.c:1567: warning: comparison between signed and unsigned
make: *** [q931.o] Error 1

asterisk:
gcc -pipe  -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations 
-g  -Iinclude -I../include -D_REENTRANT -D_GNU_SOURCE  -O6 -march=i686   -DZAPTEL_OPTIMIZATIONS 
 -DASTERISK_VERSION=\CVS-HEAD-11/30/04-07:33:25\ -DASTERISK_VERSION_NUM=99 
-DINSTALL_PREFIX=\\ -DASTETCDIR=\/etc/asterisk\ -DASTLIBDIR=\/usr/lib/asterisk\ 
-DASTVARLIBDIR=\/var/lib/asterisk\ -DASTVARRUNDIR=\/var/run\ -DASTSPOOLDIR=\/var/spool/asterisk\ 
-DASTLOGDIR=\/var/log/asterisk\ -DASTCONFPATH=\/etc/asterisk/asterisk.conf\ 
-DASTMODDIR=\/usr/lib/asterisk/modules\ -DASTAGIDIR=\/var/lib/asterisk/agi-bin\ 
-DBUSYDETECT_MARTIN  -fPIC   -c -o pbx_dundi.o pbx_dundi.c
pbx_dundi.c:54:18: zlib.h: No such file or directory
pbx_dundi.c: In function `update_key':
pbx_dundi.c:1315: warning: implicit declaration of function `crc32'
pbx_dundi.c: In function `dundi_decrypt':
pbx_dundi.c:1371: warning: implicit declaration of function `uncompress'
pbx_dundi.c:1371: error: `Z_OK' undeclared (first use in this function)
pbx_dundi.c:1371: error: (Each undeclared identifier is reported only once
pbx_dundi.c:1371: error: for each function it appears in.)
pbx_dundi.c: In function `dundi_encrypt':
pbx_dundi.c:1396: warning: implicit declaration of function `compress'
pbx_dundi.c:1397: error: `Z_OK' undeclared (first use in this function)
pbx_dundi.c: In function `socket_read':
pbx_dundi.c:1985: warning: comparison between signed and unsigned
make[1]: *** [pbx_dundi.o] Error 1
make[1]: Leaving directory `/usr/src/asterisk/pbx'
make: *** [subdirs] Error 1

___
Asterisk-Dev mailing list
[EMAIL PROTECTED]
http://lists.digium.com/mailman/listinfo/asterisk-dev
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-dev


Re: [Asterisk-Dev] SS7 for *

2004-10-04 Thread Linus Surguy
UK-ISUP has more than minor differences from the ETSI brand of ISUP (it 
is effectively a BT version). ETSI-ISUP in use in the UK (both version 1 
 2) are identical and the EU approval version would be fine for the UK.
Its a long time since I worked on UK SS7, but it didn't seem like such a 
big difference.
Maybe, but UKISUP v2 is to replace BT-IUP as the BT interconnect protocol, 
so BT have had to shove a whole load of stuff into it to make it 'conform' 
to the old way of doing things.

Linus
___
Asterisk-Dev mailing list
[EMAIL PROTECTED]
http://lists.digium.com/mailman/listinfo/asterisk-dev
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-dev


Re: [Asterisk-Dev] SS7 for *

2004-10-04 Thread Linus Surguy
We use Kingston in the UK, they wont be charging us for interconnect
testing, so if you fancy testing it with us (which we would be MORE than
happy to do) then we can get the approval done, with little costs
involved.
Although remember that won't get you on the BT approved list, all that 
covers is that KCL would be happy.

Linus
___
Asterisk-Dev mailing list
[EMAIL PROTECTED]
http://lists.digium.com/mailman/listinfo/asterisk-dev
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-dev


Re: [Asterisk-Dev] Time to lock down v1.1?

2004-05-28 Thread Linus Surguy
 1.1 (today's head) is more of a let's try if this works' release.
 Please spend time testing it. Remember, CVS HEAD, is not meant to be
 stable. Now and then, it might not even compile cleanly. It's
 a developer's release, at some point in future aimed to be stable.

Surely this is the reason of most peoples complaints today, all of us who
are using Asterisk in real world, commercial environments get extremely
frustrated when 'key' issues get fixed in the 'head' release, for example,
recent fixes for IAX and SIP voice quality, and are not back ported to the
stable/release/whatever version.

It leaves us in a very difficult position, as commercially we are placing
our users at unnecessary risk by using the 'head' version to get a specific
bug fix, but also giving them poor service if we stick with the 'broken'
version.

Please can those responsible have some understanding of this, as a rule
would it not make sense that all (or at least all major) 'fixes' go into
both after being appropriately tested, and keep 'head' for the more
'bleeding edge' new features and more radical changes etc?

Linus

___
Asterisk-Dev mailing list
[EMAIL PROTECTED]
http://lists.digium.com/mailman/listinfo/asterisk-dev
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev



Re: [Asterisk-Dev] IAX2 call variable passing between servers

2003-12-02 Thread Linus Surguy
Hi John,

I am very interested in the idea of passing extra data with IAX2 as I see
that is one of the most major areas that it is lacking.

My particular interest is in passing call related information at two times,
a) call establishment and b) call end.

The first fits in with what you have proposed here, and I agree that you
don't want to be sending or receiving all of the tasks 'environment'
variables. I also agree in principle with the thoughts behind the
inbound.variable, outbound.variable system, although I would tend to suggest
not directly linking the variables in the same 'name' space, instead you
might have:

SetCallVar(Q931BEARER=039090)
SetCallVar(Q931NOA=INTERNATIONAL)

and

ReadCallVar(Q931BEARER,BEARER)
ClearCallVar(Q931NOA)
blah blah ${BEARER}

Any variables that are set and contained in the 'callvar' name space will be
automatically passed on any outbound Dial call unless specifically cleared -
or maybe blocked with a Dial option.

These variables may be set by the application *but could also be set* by the
channel code itself, for example chan_zap.c/q931.c might set Q931BEARER, and
more importantly might *read* it and set it in the Q931 call setup packet.

With this mechanism in IAX2 and appropriate support in Zap/pri/q931 IAX2
then becomes a very real transport for telco applications where we need to
transit call flags.

Secondly, an additional variable that I would like to see passed would be
sent and read *in reverse* when a call clears. At the moment, a very real
restriction on IAX2 is that calls either connect and then clear or fail to
connect and clear. There is no way to tell *why* the call cleared. I'd like
to be able to pass, whether as a variable or otherwise a 'CLEARCAUSE'
variable whoes values could reflect a far wider range of values ( at the
very least Busy, Congested, Number Unobtainable, Call Failed, Call Rejected,
Out Of Order, Incompatible Equipment)

What do you think?

Linus
Magrathea

- Original Message -
From: John Todd [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, December 02, 2003 3:42 PM
Subject: [Asterisk-Dev] IAX2 call variable passing between servers



 Here's an idea for you all to shoot down.  I'll await the nonexistant
 comments before I open a feature request.

 We have the luxury of moving calls around with IAX2, where we (the
 Asterisk community) have control of the protocol.  Various hacks are
 being installed into SIP headers to move data around, as I'm
 experiencing with some of the installations I've now seen.  With
 IAX2, it seems apparent that we should be able to move variables
 around semi-transparently, since IAX2 integrates with Asterisk
 completely.

 Sending all variables might be difficult/insecure/silly, as we don't
 want to clutter the call setup with a slew of variables, some of
 which may be inherently secure and should not leave the server on
 which they were generated.  Perhaps some naming convention could be
 used to differentiate variables that would be passed to the remote
 end as special case variables.

 There are two possible methods that could be used to determine if
 certain variables might get passed.  The first method is the
 simplest, which is to simply search all the named variables and see
 if any of them begin with resend. and then transmit those
 automatically.  Alternately (and perhaps, in addition to this method)
 one could add yet another modifier to the Dial command, such as v
 which stands for send [v]ariables.

 I propose a format like this for outbound:  outbound.VARNAME
 I propose a format like this for inbound:   inbound.VARNAME

 I think that it would be wise to sandbox the variables with a
 distinguishing feature (name prefix) so that we do not inadvertently
 move variables out of or into local/remote dialplan executions.  The
 extra two steps is a small enough effort.  (really, one step at each
 end is needed to be clean, but we could skip the re-translation at
 the far end and just use ${inbound.VARNAME} if we were lazy.)


 As an example:
 exten = 123,1,SetVar(GREETING=hello there)
 exten = 123,2,SetVar(NAME=John Doe)
 exten = 123,3,SetVar(outbound.GREETING=${GREETING})
 exten = 123,4,SetVar(outbound.NUMBER=${EXTEN})
 exten = 123,5,Dial(IAX2/[EMAIL PROTECTED]/${EXTEN},,v)

 Upon receiving the call, the other host (hub1) would then have to
 translate back like this:

 [from-remote1]
 exten = _X.,1,SetVar(OURGREETING=${inbound.GREETING})
 exten = _X.,2,SetVar(DIALEDNUMBER=${inbound.NUMBER})
 exten = _X.,3,blah blah blah



 SIP:
 As far as having this work across channels other than IAX2: SIP can
 handle almost any number of additional headers.  It could be possible
 to incorporate a custom header if there are any variables that fall
 into the 'resend.' group.  Of course, fully escaped syntax would need
 to be followed.  As an example, a custom header could be
 generated/parsed:

 Asterisk-Variables: FOO=hello there;NUMBER=123

 PRI:
 There are special areas in the PRI outbound call which 

[Asterisk-Dev] Bug Num 0000456

2003-12-02 Thread Linus Surguy
(http://bugs.digium.com/bug_view_page.php?bug_id=456)

Hi Mark et al,

Please, if you have a moment, can you answer this one:

Was it your intention that the ability to set/override a callerid by using a
parameter in iax.conf DOES NOT APPLY if the incoming call sent a NULL
callerid?

If not, then the fix is easy, remove the if (strlen) bit from:

if (strlen(iaxs[callno]-callerid)) {
if (user-hascallerid)
strncpy(iaxs[callno]-callerid, user-callerid,
sizeof(iaxs[callno]-callerid)-1);
strncpy(iaxs[callno]-ani, user-callerid, sizeof(iaxs[callno]-ani)-1);
}

If it was your intent, please say so, and we can make a note to manually
patch it our end each time we checkout as we need the callerid= bit to
always work.

Linus


___
Asterisk-Dev mailing list
[EMAIL PROTECTED]
http://lists.digium.com/mailman/listinfo/asterisk-dev


[Asterisk-Dev] caller display in a telco environment.

2003-08-14 Thread Linus Surguy
Hi John,

In response to your question, and a couple of other items seen recently,
I've produced this, which is my view on the Q931/PRI caller display issues.

(Due to different terminology I'm using the UK abreviation CLI, caller line
identity in the following text, but it could also be termed caller display
or ANI or 'A' Number)

There have been a number of threads recently regarding CLI both entering *
from a PRI, or being delivered from * to a PRI and in most cases this is
handled 'incorrectly' if the equipment is to be used in a telco environment.
I'm not currently that famililar with the * code, but this should help those
that are make the correct choices when making patches.

Firstly, some definitions. Q931 specifies two seperate flags, which the
'zap' libraries incorrectly bundle into the one set of 'presentation'
#defines.

The first is the presentation indicator, which has three primary values:
0 which indicates that the CLI if present is freely available for display
purposes,
1 which indicates that the user/users system has made a decision not to make
the number available for display, or
2 which indicates that the number cannot be used for display, but this is
not because of user choice action. (although the title is 'number not
available due to interworking' this doesnt mean there is not a number)
(These are in bits 7  6 and so take the values in the field of
0x00,0x20,0x40,0x60)


The second is the screening indicator. These values are:

0 - The user equipment has provided the number and no network equipement has
attempted to verify the number. (In all these definitions, network equipment
refers to authoritive switching systems that are part of the PSTN and can be
trusted to provide genuine information).
1 - The user equipment has provided the number and network equipment has
validated it.
2 - The user equipment has provided the number and network equipment has
rejected it.
3 - Number has been provided by authoritive network equipment.

Now, dealing first with calls arriving from a PRI. As a telco, connections
are generally classified as trusted or not trusted. Connections to a user
are always not trusted, connections using a protocol that does not support
withholding number display are not trusted and international connections are
not trusted. As far as Asterisk is concerned sensible defaults would be to
count PRI as trusted and all none PRI (SIP, IAX etc) as none trusted, but
this should be a per trunk/user configuration option (trustwithcli=yes|no?).

Thus if Asterisk is delivering a call that arrives on a PRI it should only
pass CLI if the presentation indicator is zero unless the trunk is 'trusted'
in which case the CLI can be passed in all cases, with whatever flags the
outgoing protocol allows to closely mirror the PRI flags - especially the
presentation indicator.

Secondly, dealing with calls being delivered out from Asterisk on a PRI, to
be standards compliant, (unless the call also arrived on a PRI), all calls
should send the CLI provided but marked 'number not available due to
interworking', and 'user provided not screened' - a byte value of 0x40. A
second per user/trunk configuration item should be provided
(clivalid=yes|no?) which then overrides this behaviour and then allows the
number to be delivered to the PRI with the flags set as presentation
allowed, user provided not verified, a byte value of 0x00.

Whilst the above doesnt show any code, hopefully it is enough to help!

Linus
Magrathea


- Original Message -
From: John Todd [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Sent: Tuesday, August 05, 2003 7:25 PM
Subject: Re: [Asterisk-Users] Syntax for hiding caller ID but still passing
ANI?



 Lorenzo -
I've submitted a feature request with this patch
 (http://bugs.digium.com/bug_view_page.php?bug_id=052).  Your
 patch isn't completely descriptive, since I still don't know how you
 set the hidecallerid value from within a dialplan.  Can you explain a
 bit more, please?   Have you submitted a disclaimer to Digium so this
 patch might be added if it's seen as a useful addition?

 Linus -
Thanks for the specifications.  Did you have a patch or comments on
 how this might be implemented in the code?

 JT


 We did something like this in chan_zap at pri_call() time:
 
 case SIG_PRI:
 
 [...]
 
 if (ast-callerid) {
  strncpy(callerid, ast-callerid, sizeof(callerid)-1);
  ast_callerid_parse(callerid, n, l);
  if (l) {
  ast_shrink_phone_number(l);
  if (!ast_isphonenumber(l))
  l = NULL;
  }
 }
 
 [...]
 
 if (l) {
  pres = ast-hidecallerid ?
 PRES_PROHIB_USER_NUMBER_NOT_SCREENED :
 PRES_ALLOWED_USER
 } else
  pres = PRES_NUMBER_NOT_AVAILABLE;
 
 if (pri_call(p-pri-pri,  p-call,
  p-digital ? PRI_TRANS_CAP_DIGITAL : PRI_TRANS_CAP_SPEEC
  p-prioffset, p-pri-nodetype == PRI_NETWORK ? 0 : 1, 1, l,
  p-pri-dialplan - 1,
  c + p-stripmsd, p-pri-dialplan - 1,
 

[Asterisk-Dev] Re: [Asterisk-Users] Syntax for hiding caller ID but still passing ANI?

2003-08-10 Thread Linus Surguy
(as a follow up to my own post)

  It seems that there are two options that block the presentation: 0x23
and
 0x21

 No no! Protocol wise, they are different flags in each nibble. If the high
 nibble is not zero then the number is not for general use. Any number
 presentation block in PRI-SIP conversion should only pass the CLI if the
 high nibble is zero.

Cut and paste from the ITU Spec Q931

Presentation indicator (octet 3a)

Bits
7 6 Meaning

0 0 Presentation allowed
0 1 Presentation restricted
1 0 Number not available due to interworking
1 1 Reserved
NOTE 1 - The meaning and the use of this field is defined in 3/Q.951 and
4/Q.951.

Screening indicator (octet 3a)

Bits
2 1 Meaning

0 0 User-provided, not screened
0 1 User-provided, verified and passed
1 0 User-provided, verified and failed
1 1 Network provided

NOTE 2 - The meaning and the use of this field is defined in 3/Q.951 and
4/Q.951.

Linus


___
Asterisk-Dev mailing list
[EMAIL PROTECTED]
http://lists.digium.com/mailman/listinfo/asterisk-dev