We have a lot of questions about mod_openzap
& PRI.
1. If to see directory
libs/openzap/src/isdn it is possible to see, there are defined
such dialects : Q931, national, EvroISDN, DMS, 5ESS.
$ ls
*.c
5ESSmes.c DMSStateNT.c
mfifo.c
Q921.c Q931mes.c
5ESSStateNT.c
DMSStateTE.c
nationalmes.c Q931api.c
Q931StateNT.c
5ESSStateTE.c EuroISDNStateNT.c
nationalStateNT.c Q931.c
Q931StateTE.c
DMSmes.c
EuroISDNStateTE.c nationalStateTE.c Q931ie.c
Q932mes.c
Into the file libs/openzap/src/isdn/include/Q931.h (line ~500) are
defined only 4 dialects
typedef
enum
// Dialect enum
{
Q931_Dialect_Q931 = 0,
Q931_Dialect_National = 2,
Q931_Dialect_DMS = 4,
Q931_Dialect_5ESS = 6,
// Coming soon to a PRI stack near
you!
Q931_Dialect_Count
} Q931Dialect_t;
#define
DIALECT_STRINGS "q931", "", "national", "", "dms", "", "5ess", ""
Is it possible to add our own dialect PRI (for another submission of
SUBBADDRESS, for example), if we'll add
new files *mess.c, *StateNT.c, *StateTE and definition * into the
Q931Dialect_t ?
================================================================================
2. We start zaptel :
# ls /dev/zap
1 12 15 18 20
23 26 29 31 34 37 4 42
45 48 50 53 56 59 61
8 ctl
10 13
16 19 21 24 27 3 32 35
38 40 43 46 49 51 54 57
6 62 9
pseudo
11 14 17 2 22 25
28 30 33 36 39 41 44 47
5 52 55 58 60 7
channel timer
- zaptel is started and configured normally.
Next load FreeSWITCH...
We use such configuration file for mod_openzap :
<configuration name="openzap.conf" description="OpenZAP
Configuration">
<settings>
<param name="debug" value="1"/>
</settings>
<pri_spans>
<span id="1">
<param name="mode" value="user"
/>
<param name="dialect" value="dms"
/>
<param name="dialplan"
value="XML"/>
<param name="context"
value="public" />
</span>
<span id="2">
<param name="mode" value="user"
/>
<param name="dialect"
value="q931" />
<param
name="dialplan" value="XML"/>
<param
name="context" value="public" />
</span>
</pri_spans>
</configuration>
Next we start (from FreeSWITCH console):
freeswitch@opos8.altron.lan> oz dump 2 16
API CALL
[oz(dump 2 16)] output:
span_id: 2
chan_id: 16
physical_span_id:
2
physical_chan_id: 47
type: DQ921
state: UP%!
last_state:
DOWN
cid_date:
cid_name:
cid_num:
ani:
aniII:
dnis:
rdnis:
cause:
NONE
In what manner ( using console or debugging messages ) we can see in
run-time mode under what type of a dialect
every "span" is configured ?
If we'll specify for nonexistent dialects:
<pri_spans>
<span id="1">
<param name="dialect" value="ABC"
/>
</span>
<span
id="2">
<param name="dialect"
value="XYZ" />
</span>
</pri_spans>
- then >load mod_openzap is carried out successfully and >oz
dump <i> <j> gives us same result like before.
What dialect is used by "span" in this case? How it can be
looked?