[Freeswitch-users] mod_openzap & PRI

Evgeniy Zolotov zolotov at altron.ua
Thu Sep 18 10:13:51 PDT 2008


> 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 ?

We have added new dialect ( li_ewsd, similar to Q.931, but different that bytes of data SUBADDRES do not mask with & 0x7F -
- so the specifications of telephone stations EWSD & Surpass demands, which place into SUBADDRES special user info ( different
for EWSD & Surpass stations) ).

We have made some changes in libs/openzap/src/isdn/include/Q931.h:

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_li_ewsd  = 8,      // Coming soon to a PRI stack near you!

   Q931_Dialect_Count
} Q931Dialect_t;
#define DIALECT_STRINGS "q931", "", "national", "", "dms", "", "5ess", "", "li_ewsd", ""

After recompilation mod_openzap we connect 2 FreeSWITCH on different hosts with PRI channel through 2xE1.
Then we manage to receive.

[host 1, X-Lite] -SIP-> [host 2, FS] -PRI-> [host 3, FS] -> record_session()

Written *.wav the file is identical to that was told from X-Lite softphone

Записанный *.wav файл идентичен тому, что говорилось из X-Lite softphone...

But periodically ( > than minute ) such messages are output on FreeSWITCH console:

2008-09-18 18:53:47 [WARNING] zap_zt.c:668 zt_next_event() Unhandled event 8
2008-09-18 18:53:47 [DEBUG] zap_isdn.c:790 process_event() EVENT [INVALID][1:16] STATE [UP]

We can suppose, that it because of both sides of PRI channel are configured in such manner

  <pri_spans>
    <span id="1"> 
      <param name="mode" value="user" />
      <param name="dialect" value="li_ewsd" />
      ....
  </span>
- because of "user".

Are we right?


  ----- Original Message ----- 
  From: Anthony Minessale 
  To: freeswitch-users at lists.freeswitch.org 
  Sent: Thursday, September 18, 2008 5:39 PM
  Subject: Re: [Freeswitch-users] mod_openzap & PRI


  the dialects are not all done.  we so far can do DMS100 and euro 

  please join #openzap on irc.freenode.net and join the effort.



  On Thu, Sep 18, 2008 at 8:48 AM, Evgeniy Zolotov <zolotov at altron.ua> wrote:

    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 at opos8.altron.lan> console loglevel 9
    freeswitch at opos8.altron.lan> load mod_openzap
    ...
    freeswitch at opos8.altron.lan> oz dump 1 16
    API CALL [oz(dump 1 16)] output:
    span_id: 1
    chan_id: 16
    physical_span_id: 1
    physical_chan_id: 16
    type: DQ921
    state: UP
    last_state: DOWN
    cid_date:
    cid_name:
    cid_num:
    ani:
    aniII:
    dnis:
    rdnis:
    cause: NONE


    freeswitch at 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?

    _______________________________________________
    Freeswitch-users mailing list
    Freeswitch-users at lists.freeswitch.org
    http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
    UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
    http://www.freeswitch.org





  -- 
  Anthony Minessale II

  FreeSWITCH http://www.freeswitch.org/
  ClueCon http://www.cluecon.com/

  AIM: anthm
  MSN:anthony_minessale at hotmail.com
  GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
  IRC: irc.freenode.net #freeswitch

  FreeSWITCH Developer Conference
  sip:888 at conference.freeswitch.org
  iax:guest at conference.freeswitch.org/888
  googletalk:conf+888 at conference.freeswitch.org
  pstn:213-799-1400



------------------------------------------------------------------------------


  _______________________________________________
  Freeswitch-users mailing list
  Freeswitch-users at lists.freeswitch.org
  http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
  UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
  http://www.freeswitch.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20080918/5d9a7c75/attachment-0002.html 


More information about the FreeSWITCH-users mailing list