• No results found

Voice Over IP Information

N/A
N/A
Protected

Academic year: 2021

Share "Voice Over IP Information"

Copied!
7
0
0

Loading.... (view fulltext now)

Full text

(1)

Voice Over IP Information

Basic CISCO information

The links below contain information specific to Cisco about VoIP: Cisco RADIUS Vendor-Specific Attributes for VoIP Call Authorization

http://www.cisco.com/warp/public/cc/so/neso/vvda/pctl/distrib/radus_ov.htm

Configuration Guide for AAA Billing Features in Cisco Voice-Enabled Routers and Access Servers

http://www.cisco.com/warp/public/cc/so/cuso/sp/sms/acct/caaaf_cg.htm

Vircom VOP RADIUS and VoIP

When VOP Radius receives an authentication packet of any type … it needs to distinguish between normal auth packets and Cisco VoIP authorization packets. It can distinguish them when the following conditions are met:

1- The Terminal Server Type is CISCO 2- The NAS Port Type is ASYNC

3- The Connection-ID (Cisco VSA 24) is present

Normally -- with Cisco and VoIP, Vircom RADIUS receives three authentication requests.

The first request that RADIUS server gets is the request the Cisco sends immediately after the call is accepted. The important attributes RADIUS server expects when receiving the first Access-Request are:

Username <string> The value is ‘ANI’

Calling-Station-ID <string> The Calling Phone Number (ANI) NAS-IP-Address <ipaddr> IP Address of the originating Gateway Connection-ID (Cisco

VSA 24)

<string> Unique numeric identifier that links all the packets together

In response to this request RODOPI returns the following information: Password <sring> The value is ‘ANI’

Credit-Amount <string> Currency or unit balance remaining in User's account

Return-code <string> Conveys action to take (prompt for UID, Inform User Service not available, re-direct caller, etc.)

Service-Type <string> The value is "Cisco-VoIP" (Value number 98 for the Service-Type) Profile <string> The radius profile associated to this user

The second request that RADIUS server gets is send by the Cisco after the customer enters his card number. The important attributes RADIUS server expects when receiving the second Access-Request are:

Username <string> Debit Card Number

Calling-Station-ID <string> The Calling Phone Number

NAS-IP-Address <ipaddr> IP Address of the originating Gateway Connection-ID (Cisco

VSA 24)

(2)

In response to this request RODOPI returns the following information: Password <sring> The user's password

Credit-Amount <string> Currency or unit balance remaining in User's account

Return-code <string> Conveys action to take (re-prompt for UID, Inform User Service not available, re-direct caller, etc.)

Service-Type <string> The value is "Cisco-VoIP" (Value number 98 for the Service-Type) Profile <string> The radius profile associated to this user

Vircom RADIUS returns that to the Cisco server upstream in the Access-Granted.

As you can see, it returns the amount of currency the person has left in credits (Credit-Amount). The Cisco then, as a response, would tell the customer that he has so much amount in his account.

Afterwards, the Cisco will prompt the user for the destination phone number and sends a third access request to the RADIUS server with the Called-Station-ID = the number being dialled. The important attributes RADIUS server expects when receiving the third Access-Request are:

Username <string> Debit Card Number

Calling-Station-ID <string> The Calling Phone Number Called-Station-ID <string> The Phone number the user called NAS-IP-Address <ipaddr> IP Address of the originating Gateway Connection-ID (Cisco

VSA 24)

<string> Unique numeric identifier that links all the packets together

This is then processed by RODOPI, which returns the information below: Password <sring> The user's password

Credit-Amount <string> Currency balance remaining in User's account

Credit-Time <string> Seconds remaining based on called number (DNIS) and user balance. This translates to hold time for the call.

Return-code <string> Conveys action to take (re-prompt for UID, Inform User Service not available, re-direct caller, etc.)

Service-Type <string> The value is "Cisco-VoIP" (Value number 98 for the Service-Type) Profile <string> The radius profile associated to this user

As you can see, RODOPI returns the Credit-Time, which is the amount time the person can talk. The Cisco would then play the message "You have <so much time> to talk" and then the connection is established. Note about the attributes: In the attributes above the Profile represents a set of attributes as defined in RADIUS profile for the account.

Note about the Service-Type: The Access-Request you send doesn't need to be of value 98. RADIUS server "fake" this value internally since it uses other means to detect if the packet is a VoIP packet.

For VoIP, the Vircom RADIUS server flags the debit card as being online when it gets the third authorization (when it authenticates the dialed phone number) and it flags the debit card as being offline when it gets the Call-Leg2 Accounting Stop packet.

(3)

RODOPI determines the call leg of the packet using the accounting packets received, namely, it checks out the two following attributes in each acct-start/stop to determine which leg it's looking at:

Call-Type (Cisco VSA 27)

<string> Has the value of either "VoIP" or "Telephony" Call-Direction

(Cisco VSA 26)

<string> Indicates the origin of the call relative to the gateway (either: "answer" or "originate")

RODOPI then determines which call leg the packet belongs to using this table: Leg# Call-Direction Call-Type

1 Answer Telephony

2 Originate VoIP

3 Answer VoIP

4 Originate Telephony

You can configure which leg to use for accounting from RODOPI’s VoIP configuration page. The following attributes were added to the Vircom Dictionary file for VoIP support (vprdict.txt)

VSA Name of attribute Type Description

Attributes Sent from Voice Gateway to the Radius Server

23 Gateway-ID <string> Remote Gateway ID, Address of remote Gateway -> Accounting Request (4) - Stop Record

24 Connection-ID <string> Unique call identifier, 4 long words (128 bits), space separated. Used to associate CDRs from all call legs. -> Accounting Request (4) - Start & Stop Records 25 Setup-Time <string> Setup time in NTP format

-> Accounting Request (4) - Start & Stop Records

26 Call-Direction <string> Indicates origin of call relative to gateway, assumes either of two values: ("answer" or "originate")

-> Accounting Request (4) - Start & Stop Records 27 Call-Type <string> Call leg type ("VoIP" or "Telephony")

-> Accounting Request (4) - Start & Stop Records 28 Connect-Time <string> Connect time in NTP format

-> Accounting Request (4) - Stop Record 29 Disconnect-Time <string> Disconnect time in NTP format

-> Accounting Request (4) - Stop Record 30 Disconnect-Cause <string> Disconnect-Cause

-> Accounting Request (4) - Stop Record

31 Voice-Quality <string> Value representing ICPIF (Expectation Factor, ITU G.113) calculation of Voice Quality

-> Accounting Request (4) - Stop Record

32 IVR-Out-Avpair <string> User defineable Attribute Value pairs sent from Gateway -> Accounting Request (4) - Start & Stop Records 33 Gateway-Name <string> Name of the gateway emitting the message

34 Call-Treatment <string Used to convey how call was treated. E.g. re-directed, forwarded, conferenced, etc.

(4)

VSA Name of attribute Type Description

Attributes Sent from Radius to the Voice Gateway

100 IVR-In-AVpair <string> User define-able Attribute Value pairs to be sent from Radius Server to Gateway

-> Access-Accept (2), Reject (3), Response (5)

101 Credit-Amount <string> Currency or unit balance remaining in User's account (based on UID and PIN)

-> Access-Accept (2)

102 Credit-Time <string> Seconds remaining based on called number (DNIS) and user balance. This translates to hold time for the call.

103 Return-Code <string> Conveys action to take (re-prompt for UID, Inform User Service not available, re-direct caller, etc.)

-> Access-Accept (2), Reject (3), Response (5)

104 Prompt-ID <string> An index into an array to prompts known to the IVR script. Can be used with Return code (103) to indicate how/when to play out.

-> Access-Accept (2), Reject (3), Response (5) 105 Time-of-Day <string> Time of day at Called number 22:10:31

-> Accept (2)

106 Redirect-Number <string> Provide phone number for caller redirect. Can be used with Return Code, in failure conditions, etc.

-> Accept (2), Reject (3)

107 Preferred-Language <string> ISO language indication to inform of caller's language of preference ( Ex.: en )

-> Accept (2), Reject (3)

108 Redirect-IP-Address <string> IP address of termination gateway. (can be used with Return code)

-> Accept (2), Reject (3)

109 Billing-Model <string> Represents billing "model" for the call. Initial values: 0 = Credit, 1 = Debit *

-> Accept (2)

110 Currency-Type <string> ISO currency to indicate what units to play the balance remaining

(5)

General ODBC Interface for VoIP Support

These are the interfaces that RADIUS server uses with the RODOPI Billing Software. Note: The two stored procedures mentioned below, namely Interface_VircomUsers2 and

Interface_VircomDetails2 have a "2" at the end of their name. You do not need to specify the "2" in the actual ODBC config in VOP Radius. RADIUS server will automatically append the "2" to the name if it realizes that this is a VoIP transaction. For the package to work properly with VoIP, you must select the RODOPI database type in the ODBC setup (under the Radius Server tab of the VOP Radius configuration panel).

Authentication Interface.

Access-Request

To authenticate the user RADIUS server makes a stored procedure call (in this case,

Interface_VircomUsers2), with the following parameters (your stored procedure should accept the same parameters):

Interface_VircomUsers2

@UserName varchar(255) = NULL, -- PIN,Credit/Debit Card number @CallingStationID varchar(128)= NULL, -- calling phone number

@CalledStationID varchar(128)= NULL, -- called phone number @NasIPAddress varchar(16) = NULL, -- origination Gateway IP @ConnectionID varchar(128)= NULL, -- unique call identifier @ServiceType varchar(128) -- Requested Service Type

NOTE: For PIN authentication RADIUS server has to provide RODOPI with PIN number as value of the @UserName parameter of this stored procedure.

For ANI authentication the value of the @UserName parameter have to be ‘ANI’ or the same value as @CallingStationID parameter. If @UserName parameter does not meet these conditions the PIN authentication will be used.

For non VoIP packets RADIUS server is using the following interface:

Interface_VircomUsers

@UserName varchar(255) -- The person's user name

Access-Granted / Access-Denied

Normally, your stored procedure should return the following information depending on the authentication type (auth1 = first-request, auth2 = second request, auth3 = third request). RADUIS server is expecting to receive “record set” with two columns: Attribute Names and Attribute Values.

Here is a sample output for AUTH1 (First request):

AttributeName AttributeValue --- ---Password ANI Credit-Amount h323-credit-Amount=115.22 Return-Code h323-return-code=0 Service-Type Cisco-VoIP

(6)

Here is a sample output for AUTH2 (Second request): AttributeName AttributeValue --- ---Password 1234 Credit-Amount h323-credit-Amount=115.22 Return-Code h323-return-code=0 Service-Type Cisco-VoIP

Here is a sample output for AUTH3 (Third request):

AttributeName AttributeValue --- ---Password 1234 Credit-Amount h323-credit-Amount=115.22 Credit-Time h323-credit-time=600 Return-Code h323-return-code=0 Service-Type Cisco-VoIP

For non VoIP packet the stored procedure must return the “record set” with the same structure as described above. See an example below:

AttributeName AttributeValue

--- ---Password secret

profile PPPprofile

Everything else may come from a RADIUS profile.

Note: The returned attribute names must be defined in the VOP Radius dictionary. Password should be the

first record retrieved among the “record set”.

Accounting Interface.

For accounting purpose RADUIS server is calling a stored procedure, which has the following interface:

Interface_VircomDetails2:

1 - param( Accounting Session ID ) is STRING

2 - param( Date /time ) is STRING in the following format YYYY-MM-DD HH:MM:SS

3 - param( UserName ) is STRING

4 - param( NAS IP ) is STRING can be NULL

5 - param( Port ID ) is INTEGER and CAN BE NULL if does not present into packet

6 - param( Service Type ) is STRING can be NULL 7 - param( Protocol ) is STRING can be NULL 8 - param( Framed address ) is STRING can be NULL 9 - param( Calling station ) is STRING can be NULL 10 - param( NAS identifier ) is STRING can be NULL 11 - param( Status type ) is STRING can be NULL 12 - param( Delay ) is INTEGER can be NULL 13 - param( Input Octets ) is INTEGER

14 - param( Output Octets ) is INTEGER 15 - param( Session time ) is INTEGER 16 - param( Input packets ) is INTEGER 17 - param( Output packets ) is INTEGER

(7)

18 - param( Terminate cause ) is STRING can be NULL 19 - param( Nas Port Type ) is STRING can be NULL 20 - param( Connect Info ) is INTEGER can be NULL 21 - param( Client DNIS ) is STRING can be NULL 22 - param( GATEWAY_NAME) is STRING can be NULL 23 - param( CONNECTION_ID) is STRING can be NULL 24 - param( CALL_DIRECTION) is STRING can be NULL 25 - param( CALL_TYPE) is STRING can be NULL 26 - param( SETUP_TIME) is STRING can be NULL 27 - param( CONNECT_TIME) is STRING can be NULL 28 - param( DISCONNECT_TIME) is STRING can be NULL 29 - param( DISCONNECT_CAUSE) is STRING can be NULL 30 - param( VOICE_QUALITY) is STRING can be NULL 31 - param( REMOTE_GATEWAY_ID) is STRING can be NULL 32 - param( IVR_OUT_AVPAIR) is STRING can be NULL 33 - param( CALL_TREATMENT) is STRING can be NULL

For non VoIP packets RADIUS server calls the following stored procedure:

Interface_VircomDetails:

1 - param( Accounting Session ID ) is STRING

2 - param( Date /time ) is STRING in the following format YYYY-MM-DD HH:MM:SS

3 - param( UserName ) is STRING

4 - param( NAS IP ) is STRING can be NULL

5 - param( Port ID ) is INTEGER and CAN BE NULL if does not present into packet

6 - param( Service Type ) is STRING can be NULL 7 - param( Protocol ) is STRING can be NULL 8 - param( Framed address ) is STRING can be NULL 9 - param( Calling station ) is STRING can be NULL 10 - param( NAS identifier ) is STRING can be NULL 11 - param( Status type ) is STRING can be NULL 12 - param( Delay ) is INTEGER can be NULL 13 - param( Input Octets ) is INTEGER

14 - param( Output Octets ) is INTEGER 15 - param( Session time ) is INTEGER 16 - param( Input packets ) is INTEGER 17 - param( Output packets ) is INTEGER

18 - param( Terminate cause ) is STRING can be NULL 19 - param( Nas Port Type ) is STRING can be NULL 20 - param( Connect Info ) is INTEGER can be NULL 21 - param( Client DNIS ) is STRING can be NULL

References

Related documents

“Workforce Development Board” or “WDB” shall mean the Board established by the City as a non-profit, public benefit corporation and certified by the Governor of the State

Tsang, et al., Reprint of &#34;Selective conversion of CO into ethanol on Cu(511) surface reconstructed from Cu(pc): Operando studies by electrochemical scanning tunneling

One school of thought argues that training in competencies like Communication skills and Customer relationship management leads to an increase in turnover, while the other

In memory of Harold Taub, beloved husband of Paula Taub by: Karen &amp; Charles Rosen.. Honouring Maria Belenkova-Buford on her marriage by: Karen &amp;

Behavioral parameters which are not directly measurable - those that involve the network as well as a baseline migration and return probability - were determined by searching

Conclusion and Recommendation The result showed that there is positive correlation between imagery and sports performance, meditation and sports performance, progressive

Both the Cyber Security Research and Development Act of 2002 (PL 107-305) and the Homeland Security Act established new programs and authorized new funds for cybersecurity

 Seller corporation was in delay, amounting to non-performance of obligation to buyer Millan who had fully paid up her instalments..  NCC170 provides that those who in