Actions

Difference between revisions of "ABSD Billing"

From Zenitel Wiki

(Basic Concept)
Line 8: Line 8:
  
 
  CDC = Call Detail Control
 
  CDC = Call Detail Control
 +
ABSD = AlphaCom Billing Service Daemon
  
Basic AlphaCom behavior is based on adding CDC parameters to directory numbers using feature 81, Call to remote EXCHANGE and 83, Direct Global Number.
+
AlphaCom behavior is based on adding CDC handling to directory numbers using feature 81, Call to remote EXCHANGE and 83, Direct Global Number. When dialling feature 81/83 to ''dest_node'', AMCD checks .module_profile.node_profile[''dest_node''].''absd_node''. If ''absd_node'' is different from null, CDC handling is activated for the call. ''dest_node'' is usually a SIP-server. ''absd_node'' is the node number hosting the ABSD.
When CDC is activated for a directory number pin code signaling is expected before the "real"-feature is activated.  
+
 
 +
When CDC handlig is active, AMCD buffers all dialled by the user, as well forwards the digits to ABSD as CMD_STATE(,,,DIGIT,). ABSD decides whether digits are PIN code, trunk number, or digits to be sent to SIP
 +
 
 +
When ABSD has recognized a PIN code or a trunk number, it sends CDC_CMD back to AMCD. The CDC_CMD contains code for the current state of dialing, and the number of digits which was associated with this part of the dialing sequence. AMCD removes the given number of digits from the start of the buffer. When ABSD sends CDC_CMD(,,TRUNK_SET...), AMCD opens the SIP connection, and send the remaining buffered digits to the SIP connection.
  
 
== Startup Sequence ==
 
== Startup Sequence ==

Revision as of 13:28, 9 June 2008

New Data protocol messages

CDC_STATE from AMCD to ABSD <br\> CDC_CMD from ABSD to AMCD <br\>


Basic Concept

CDC = Call Detail Control
ABSD = AlphaCom Billing Service Daemon

AlphaCom behavior is based on adding CDC handling to directory numbers using feature 81, Call to remote EXCHANGE and 83, Direct Global Number. When dialling feature 81/83 to dest_node, AMCD checks .module_profile.node_profile[dest_node].absd_node. If absd_node is different from null, CDC handling is activated for the call. dest_node is usually a SIP-server. absd_node is the node number hosting the ABSD.

When CDC handlig is active, AMCD buffers all dialled by the user, as well forwards the digits to ABSD as CMD_STATE(,,,DIGIT,). ABSD decides whether digits are PIN code, trunk number, or digits to be sent to SIP

When ABSD has recognized a PIN code or a trunk number, it sends CDC_CMD back to AMCD. The CDC_CMD contains code for the current state of dialing, and the number of digits which was associated with this part of the dialing sequence. AMCD removes the given number of digits from the start of the buffer. When ABSD sends CDC_CMD(,,TRUNK_SET...), AMCD opens the SIP connection, and send the remaining buffered digits to the SIP connection.

Startup Sequence

The WCSD software is defined as device number 198. When AMCD receives a RESET_TAKEN message from device 198 it configure itself for billing.

AMCD                                                        WCSD
                                  <----                    RESET_TAKEN(0)
(AMCD remember the WCSD address, also AlphaNet use)
COMMAND_RESPONSE (response code)  ---->
  (1 = License OK or 4 = not allowed)

Digit Collection

Example 1:<br\> System setup: <br\> AudioCodes SIP gateway, trunk line 1 programmed with number 0047. <br\> 0047 programmed in AlphaCom as feature 83 global number with flag for Call Detail Control.<br\>

WCSD programmed with pin code "12" for user "101" <br\>

User "101" dials trunk extension "0047" then local number 64871300

AMCD                                                        WCSD
CDC_STATE (START,       REF, 101, 0047) ----->             (Starts new billing process)
CDC_STATE (PIN_DIGIT,   REF, 101,    1) ----->             (Verify pin digits)
CDC_STATE (PIN_DIGIT,   REF, 101,    2) ----->
                                        <-----              CDC_CMD (REF, OK)   (Pin OK)
   (Send INVITE to SIP GW, SIP-trunk dial tone)
...
CDC_STATE (ESTABLISHED, REF, 101, 0047) ----->             (SIP connection established) 
CDC_STATE (TRUNK_DIGIT, REF, 101,    6) ----->             (Collect digits for billing information)
CDC_STATE (TRUNK_DIGIT, REF, 101,    4) ----->             
 digits....871300                                          (When user stops dialing start billing?)
....
CDC_STATE (ACTIVE,      REF, 101, 0047) ----->             (Received every 10 sec as a heartbeat)
.....
CDC_STATE (DISCONNECT,  REF, 101, 0047) ----->             (Conversation disconnected)


When the link to the SIP gateway is established AlphaCom has no knowledge if the user reach a destination or not.

Example 2:<br\> System setup: <br\> SIP call manager <br\> 0047 programmed in AlphaCom as feature 81 Area code with flag for Call Detail Control and digit collection.<br\>

WCSD programmed with pin code "12" for user "101" <br\>

User "101" dials trunk extension "0047"

AMCD                                                        WCSD
CDC_STATE (START,       REF, 101, 0047) ----->             (Starts new billing process)
CDC_STATE (PIN_DIGIT,   REF, 101,    1) ----->             (Verify pin digits)
CDC_STATE (PIN_DIGIT,   REF, 101,    2) ----->
(New dial tone from AMC)                <-----              CDC_CMD (REF, OK)   (Pin OK)
CDC_STATE (TRUNK_DIGIT, REF, 101,    6) ----->             (Collect digits for billing information)
CDC_STATE (TRUNK_DIGIT, REF, 101,    4) ----->             
 digits..871300...                                         (When user stops dialing start billing?)
....
(User stops dialing or press M. SIP INVITE is sent with all collected digits 64871300)
...
CDC_STATE (ESTABLISHED, REF, 101, 0047) ----->             (SIP connection established) 
....
CDC_STATE (ACTIVE,      REF, 101, 0047) ----->             (Received every 10 sec as a heartbeat)
.....
CDC_STATE (DISCONNECT,  REF, 101, 0047) ----->             (Conversation disconnected)


Dependent on the call manager the ESTABLISHED message can arrive during ringing or when the B-side actually lifting the handset.

Failure situations

Illegal pin code

AMCD                                                        WCSD
CDC_STATE (START,       REF, 101, 0047) ----->             (Starts new billing process)
CDC_STATE (PIN_DIGIT,   REF, 101,    1) ----->             (Verify pin digits)
CDC_STATE (PIN_DIGIT,   REF, 101,    3) ----->
                                        <-----              CDC_CMD (REF, NOT_OK)   (Pin not OK)
   (User get failure tone and disconnect)
CDC_STATE (DISCONNECT,  REF, 101,0047)  ----->             (Conversation disconnected)
...

No reply from billing WCSD

AMCD                                                        WCSD
CDC_STATE (START,       REF, 101, 0047) ----->             (Starts new billing process)
CDC_STATE (PIN_DIGIT,   REF, 101,    1) ----->             (Verify pin digits)
CDC_STATE (PIN_DIGIT,   REF, 101,    2) ----->
....                                      
timeout after 3 sec, continue call setup
 (Send INVITE to SIP GW, SIP-trunk dial tone)
...
CDC_STATE (ESTABLISHED, REF, 101, 0047) ----->             (SIP connection established) 
CDC_STATE (TRUNK_DIGIT, REF, 101,    6) ----->             (Collect digits for billing information)
CDC_STATE (TRUNK_DIGIT, REF, 101,    4) ----->     
 .....

Illegal number series dialed

AMCD                                                        WCSD
CDC_STATE (START,       REF, 101, 0047) ----->             (Starts new billing process)
CDC_STATE (PIN_DIGIT,   REF, 101,    1) ----->             (Verify pin digits)
CDC_STATE (PIN_DIGIT,   REF, 101,    2) ----->
                                        <-----              CDC_CMD (REF, OK)   (Pin OK)
   (Send INVITE to SIP GW, SIP-trunk dial tone)
...
CDC_STATE (ESTABLISHED, REF, 101, 0047) ----->             (SIP connection established) 
CDC_STATE (TRUNK_DIGIT, REF, 101,    8) ----->             (Collect digits for billing information)
CDC_STATE (TRUNK_DIGIT, REF, 101,    2) ----->             
CDC_STATE (TRUNK_DIGIT, REF, 101,    0) ----->             
                                        <-----              CDC_CMD (REF, DISCONNECT)   (Illegal number series 820xxx)
(User get failure tone and disconnect)
CDC_STATE (DISCONNECT,  REF, 101, 0047) ----->             (Conversation disconnected)
....