CURRI Hello World
To get started with CURRI, let us look at a simple call routing example.
Here we see how a call would be managed by Unified CM using the Cisco Unified Routing Rules Interface (CURRI) API.
- Let us assume that the administrator has configured an External Call Control Profile "ECC profile to RS1 & RS2" and enabled it at the translation pattern 5XXXX. You can see how to do that here.
- User A with directory number 9725550101 calls user B by dialing 50102. Cisco Unified CM is configured to allow five digit dialing for internal calls. The dialed number, 50102, is transformed into +19725550102 on the translation pattern 5XXXX.
- When Unified CM detects that dialed pattern has an ECCP associated with it, it pauses processing of the call and issues a call routing request to the URL specified in the ECCP.
An example of the call routing request can be seen below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | POST /pdp/AuthorizationEndPoint HTTP/1.1 Host: 10.89.81.55:8080 Accept: */* Content-type: text/xml; charset=ISO-8859-1 methodName: isRoleAccessAllowed User-Agent: CiscoUCM-HttpClient/1.0 Connection:Keep-Alive Content-Length: 1704 <!--?xml version="1.0" encoding="UTF-8"?--> < request xmlns = "urn:oasis:names:tc:xacml:2.0:context:schema:os" > < subject subjectcategory = "urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" > < attribute attributeid = "urn:oasis:names:tc:xacml:1.0:subject:role-id" datatype = "http://www.w3.org/2001/XMLSchema#string" > Issuer="requestor"> < attributevalue >CISCO:UC:UCMPolicy</ attributevalue > </ attribute > < attribute attributeid = "urn:Cisco:uc:1.0:callingnumber" datatype = "http://www.w3.org/2001/XMLSchema#string" > < attributevalue >9725550101</ attributevalue > </ attribute > < attribute attributeid = "urn:Cisco:uc:1.0:callednumber" datatype = "http://www.w3.org/2001/XMLSchema#string" > < attributevalue >50102</ attributevalue > </ attribute > < attribute attributeid = "urn:Cisco:uc:1.0:transformedcgpn" datatype = "http://www.w3.org/2001/XMLSchema#string" > < attributevalue >+19725550101</ attributevalue > </ attribute > < attribute attributeid = "urn:Cisco:uc:1.0:transformedcdpn" datatype = "http://www.w3.org/2001/XMLSchema#string" > < attributevalue >+19725550102</ attributevalue > </ attribute > </ subject > < resource > < attribute attributeid = "urn:oasis:names:tc:xacml:1.0:resource:resource-id" datatype = "http://www.w3.org/2001/XMLSchema#anyURI" > < attributevalue >CISCO:UC:VoiceOrVideoCall</ attributevalue > </ attribute > </ resource > < action > < attribute attributeid = "urn:oasis:names:tc:xacml:1.0:action:action-id" datatype = "http://www.w3.org/2001/XMLSchema#anyURI" > < attributevalue >any</ attributevalue > </ attribute > </ action > < environment > < attribute attributeid = "urn:Cisco:uc:1.0:triggerpointtype" datatype = "http://www.w3.org/2001/XMLSchema#string" > < attributevalue >translationpattern</ attributevalue > </ attribute > </ environment > </ request > |
To learn more about call routing request, visit Read Call Routing Request.
4. In response to the request, the Route Server provides a directive - permit with a simple continue.
An example of the call routing response can be seen below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Connection: Keep-Alive Keep-Alive: timeout = 1000 max = 100 Transfer-Encoding: chunked Date: Mon, 08 Jun 2009 16:50:21 GMT <!--?xml encoding="UTF-8" version="1.0"?--> < response > < result > < decision >Permit</ decision > < obligations > < obligation fulfillon = "Permit" obligationid = "continue.simple" > < attributeassignment attributeid = "Policy:continue.simple" > < cixml version = "1.0" > < continue ></ continue > </ cixml > </ attributevalue > </ attributeassignment > </ obligation > </ obligations > </ result > </ response > |
To learn more about call routing response, visit Generate Call Routing Response.
5. Unified CM routes the call according to the directive. In this example, the call continues to 9725550102.