|
|
(25 intermediate revisions by 5 users not shown) |
Line 1: |
Line 1: |
− | New Data protocol messages
| + | ABSD = AlphaCom Billing Service Daemon |
| | | |
− | [[CDC_STATE]] from AMCD to ABSD <br\>
| + | A AlphaCom can host a ABSD process for billing services. ABSD requires a license to be inserted, and the application it self runs from local flash filesystem. ABSD handle the realtime authorization and charging of outgoing calls. Configuration and invoicing is handled by a BillingWeb application. |
− | [[CDC_CMD]] from ABSD to AMCD <br\>
| |
| | | |
| + | The ABSD software communicates with the local AMCD using Stentofon Simple Link Layer. The ABSD software is defined as device number 198, and connects to local AMCD on TCP port 127.0.0.1/40002. In AlphaNet, remote AlphaComs communicates with ABSD via the hosting AMCD using the normal AlphaNet routing. |
| | | |
− | == Basic Concept ==
| + | [[Category:Billing]] |
− | | |
− | CDC = Call Detail Control
| |
− | ABSD = AlphaCom Billing Service Daemon
| |
− | | |
− | A AlphaCom can host a ABSD process for billing services. ABSD requires an external CIFS mounted network disk for the data storage, but the application it self runs from local flash filesystem. ABSD handle the realtime authorization and charging of outgoing calls. Configuration and invoicing is handled by a BillingWeb application.
| |
− | | |
− | The ABSD software communicates with the local AMCD using [[Stentofon Simple Link Layer]].
| |
− | The ABSD software is defined as [[device]] number '''198''', and connects to local AMCD on TCP port 127.0.0.1/'''40002'''. In AlphaNet, remote AlphaComs communicates with ABSD via the hosting AMCD using the normal AlphaNet routing.
| |
− | | |
− | == Startup Sequence ==
| |
− | | |
− | At startup ABSD sends "#!ABSD 0/198 VER:xxxx" + a [[RESET_TAKEN]] message.
| |
− | | |
− | AMCD responds to RESET_TAKEN message with [[COMMAND_RESPONSE]]. Response code (2) is 1 = License OK, or 4 = not license. Number of license in parameter 3
| |
− | | |
− | == Call charging overview ==
| |
− | | |
− | 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 [[CDC_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.
| |
− | | |
− | ABSD may determine that a call should be aborted, due to illegal PIN, barred telephone number or overdrawn account. ABSD will then send CDC_CMD(,,ABORT...) to AMCD, and wait for CDC(,,DISCONNECT...) in return.
| |
− | | |
− | == AlphaCom User interface for dialling ==
| |
− | * When dial PIN
| |
− | ** Short pip (handset off dialling)
| |
− | ** Display * ?
| |
− | * When SIP connection starts:
| |
− | ** Reset display line 2, dont show PIN/trunk code
| |
− | ** Dialtone from SIP
| |
− | | |
− | * When aborted due to failed PIN/barred number/overdrawn account:
| |
− | ** Failure tone
| |
− | | |
− | ==AlphaPro Config==
| |
− | New NVRAM field: module_profile.node_profile[''dest_node''].''absd_node''.
| |
− | | |
− | This will appear in AlphaPro, "net routing"/"Advanced settings". ''absd_node'' must be set in all AlphaComs which are to use the billing service.
| |
− | | |
− | == Digit Collection ==
| |
− | === Trunk no+PIN ===
| |
− | 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\>
| |
− | | |
− | ABSD programmed with pin code "12" for user "101" <br\>
| |
− | | |
− | User "101" dials trunk extension "0047" then local number 64871300
| |
− | | |
− | AMCD ABSD
| |
− | CDC_STATE (REF, 101, START, 0047) -----> (Starts new billing process)
| |
− | <----- CDC_CMD (REF, 101, DIAL_PIN,, 0, )
| |
− | CDC_STATE (REF, 101, DIGIT, 1) -----> (Verify pin digits)
| |
− | CDC_STATE (REF, 101, DIGIT, 2) ----->
| |
− | <----- CDC_CMD (REF, 101, TRUNK_SET,, 2, 0047 )
| |
− | (Send INVITE 0047 to SIP GW, SIP-trunk dial tone)
| |
− | ...
| |
− | CDC_STATE (REF, 101, ESTABLISHED,) ----->
| |
− | CDC_STATE (REF, 101, DIGIT, 6) -----> (Collect digits for billing information)
| |
− | CDC_STATE (REF, 101, DIGIT, 4) ----->
| |
− | digits....871300 (When user stops dialing start billing?)
| |
− | ....
| |
− | CDC_STATE (REF, 101, ACTIVE, ) -----> (Received every 10 sec as a heartbeat)
| |
− | .....
| |
− | CDC_STATE (REF, 101, DISCONNECT, ) -----> (Conversation disconnected)
| |
− | | |
− | | |
− | When the link to the SIP gateway is established AlphaCom has no knowledge if the user reach a destination or not.
| |
− | | |
− | '''Trunk no+PIN+ digit collection in AMCD'''<br\>
| |
− | System setup: <br\>
| |
− | SIP call manager <br\>
| |
− | 0047 programmed in AlphaCom as feature 81 Area code with Call Detail Control node set, plus SIP digit collection.<br\>
| |
− | | |
− | ABSD programmed with pin code "12" for user "101" <br\>
| |
− | | |
− | User "101" dials trunk extension "0047"
| |
− | | |
− | AMCD ABSD
| |
− | CDC_STATE (REF, 101, START, 0047) -----> (Starts new billing process)
| |
− | <----- CDC_CMD (REF, 101, DIAL_PIN,, 0, )
| |
− | CDC_STATE (REF, 101, DIGIT, 1) -----> (Verify pin digits)
| |
− | CDC_STATE (REF, 101, DIGIT, 2) ----->
| |
− | (New dial tone from AMC) <----- CDC_CMD (REF, 101, TRUNK_SET,, 2, 0047 )
| |
− | CDC_STATE (REF, 101, DIGIT, 6) -----> (Collect digits for billing information)
| |
− | CDC_STATE (REF, 101, DIGIT, 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 (REF, 101, ESTABLISHED,) ----->
| |
− | ....
| |
− | CDC_STATE (REF, 101, ACTIVE, ) -----> (Received every 10 sec as a heartbeat)
| |
− | .....
| |
− | CDC_STATE (REF, 101, DISCONNECT, ) -----> (Conversation disconnected)
| |
− | | |
− | Dependent on the call manager the ESTABLISHED message can arrive during ringing or when the B-side actually lifting the handset.
| |
− | | |
− | | |
− | ===No PIN===<br\>
| |
− | As example Trunk no+PIN, but "open" extension not requiring PIN<br>
| |
− | | |
− | AMCD ABSD
| |
− | CDC_STATE (REF, 101, START, 0047) -----> (Starts new billing process)
| |
− | <----- CDC_CMD (REF, 101, TRUNK_SET,, 0, 0047 )
| |
− | (Send INVITE 0047 to SIP GW, SIP-trunk dial tone)
| |
− | ...
| |
− | CDC_STATE (REF, 101, ESTABLISHED,) ----->
| |
− | CDC_STATE (REF, 101, DIGIT, 6) -----> (Collect digits for billing information)
| |
− | CDC_STATE (REF, 101, DIGIT, 4) ----->
| |
− | digits....871300 (When user stops dialing start billing?)
| |
− | ....
| |
− | CDC_STATE (REF, 101, ACTIVE, ) -----> (Received every 10 sec as a heartbeat)
| |
− | .....
| |
− | CDC_STATE (REF, 101, DISCONNECT, ) -----> (Conversation disconnected)
| |
− | | |
− | == Failure situations ==
| |
− | | |
− | === Illegal pin code ===
| |
− | | |
− | AMCD ABSD
| |
− | CDC_STATE (REF, 101, START, 0047) -----> (Starts new billing process)
| |
− | <----- CDC_CMD (REF, 101, DIAL_PIN,, 0, )
| |
− | CDC_STATE (REF, 101, DIGIT, 1) -----> (Verify pin digits)
| |
− | CDC_STATE (REF, 101, DIGIT, 3) ----->
| |
− | <----- CDC_CMD (REF, 101, ABORT,, , )
| |
− | User get failure tone and disconnect)
| |
− | CDC_STATE (REF, 101, DISCONNECT, ) -----> (Conversation disconnected)
| |
− | ...
| |
− | | |
− | === No reply from billing WCSD ===
| |
− | | |
− | AMCD ABSD
| |
− | CDC_STATE (REF, 101, START, 0047) -----> (Starts new billing process)
| |
− | | |
− | .... No response to user on digits, just collect in buffer.
| |
− | timeout after 1 sec, continue call setup. Throw away all digits buffered
| |
− | so far. (Send INVITE to SIP GW, SIP-trunk dial tone)
| |
− | ...
| |
− | CDC_STATE (REF, 101, ESTABLISHED,) ----->
| |
− | CDC_STATE (REF, 101, DIGIT, 6) ----->
| |
− | CDC_STATE (REF, 101, DIGIT, 4) ----->
| |
− | | |
− | === Illegal number series dialed ===
| |
− | AMCD ABSD
| |
− | CDC_STATE (REF, 101, START, 0047) -----> (Starts new billing process)
| |
− | <----- CDC_CMD (REF, 101, DIAL_PIN,, 0, )
| |
− | CDC_STATE (REF, 101, DIGIT, 1) -----> (Verify pin digits)
| |
− | CDC_STATE (REF, 101, DIGIT, 2) ----->
| |
− | <----- CDC_CMD (REF, 101, TRUNK_SET,, 2, 0047 )
| |
− | (Send INVITE 0047 to SIP GW, SIP-trunk dial tone)
| |
− | ...
| |
− | CDC_STATE (REF, 101, ESTABLISHED,) ----->
| |
− | CDC_STATE (REF, 101, DIGIT, 8) ----->
| |
− | CDC_STATE (REF, 101, DIGIT, 2) ----->
| |
− | CDC_STATE (REF, 101, DIGIT, 0) ----->
| |
− | <----- CDC_CMD (REF, 101, ABORT) (Illegal number series 820xxx)
| |
− | (User get failure tone and disconnect)
| |
− | CDC_STATE (REF, 101, DISCONNECT, ) -----> (Conversation disconnected)
| |
− | ....
| |