MGCP
-
Upload
catharine24 -
Category
Documents
-
view
2.277 -
download
3
Transcript of MGCP
![Page 1: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/1.jpg)
Signaling protocols- MGCP
![Page 2: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/2.jpg)
Signaling architectures Distributed Call Control (a.k.a. Intelligent endpoint model) Centralized Call Control (a.k.a. Call Agent, Softswitch model)
Dumb endpoint Decomposed gateway (physically separate signaling and
media) media conversion close to the traffic source or sink smaller number of controller easy to roll out new applications
![Page 3: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/3.jpg)
Call Agent model
Intelligence concentrated at Call Agent Routing decisions Policy decisions
Call state kept at Call Agent Call agent is the master, gateway or
endpoint is the “slave”
Examples:MGCP (Media Gateway Control Protocol)SCCP (Simple Client Control Protocol, Cisco)
![Page 4: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/4.jpg)
Intelligent endpoint model
Routing decisions made in conjunction with server in cloud
Policy decisions usually made by a policy server
Call state kept at endpoint
Examples: SIP (Session Initiation Protocol), ITU H.323
![Page 5: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/5.jpg)
Media Gateway Control Protocol (MGCP)
IETF RFC 3435 Text based protocol, easily readable Master slave protocol Two main entities +
Call Agent(CA), a.k.a. Media Gateway Controller
Media Gateway (MG) One end is circuit switch, the other is RTP port Trunking gateway(TGW) Residential gateway(RGW)
Signaling Gateway
![Page 6: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/6.jpg)
MGC Requirements
establish media stream and negotiate format
tones and announcement QoS conditioning network monitoring billing and accounting non-stop, incremental equipment /
subsystem upgrade
![Page 7: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/7.jpg)
Key MGCP terms
Endpoints Basically physical circuits/resources that
reside on the gateway Single endpoint can have multiple
connections Connections
A data path between an endpoint and a peer (address, port) on the IP network
Calls Digit maps Events/Signals
![Page 8: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/8.jpg)
Endpoints
Analog endpoints Named aaln/* follows slot/port hardware hierarchy
Digital endpoints (ds0 channel) Named ds/* Specifically ds/<unit-type1>-<unit #>/<unit-type2>-
<unit #>/.../<channel #> Example ds/ds1/1
Virtual endpoints An audio source like an IVR server, Announcement
server Conference bridge Packet relay (e.g. Firewall) Wire-tap access point Named virtual-endpoint-type/channel Example ann/*, for “announcement resources”
![Page 9: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/9.jpg)
Endpoint Identifier
GW’s Domain Name + Local Name Local Name
A hierarchical form: X/Y/Z trunk4/12/[email protected]
To identify DS0 number 7 within DS1 number 12 on DS3 number 4 at gateway.somenetwork.net
Wild-cards $, any; *, all e.g., trunk1/5/[email protected]
CA wants to create a connection on an endpoint in a gateway and does not really care which endpoint is used.
e.g., trunk1/5/*@gateway.somenetwork.net CA requests statistical information related to all
endpoints on a gateway.
![Page 10: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/10.jpg)
Connection
Between an endpoint, and a peer on the IP network
Connection ID created by gateway, and is unique in its scope
Connection has a “session description”, defining Remote address, port Types of media Codec type
![Page 11: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/11.jpg)
Call
Notion of Call, and corresponding Call-ID owned by the Call Agent(CA)
Commonly, a Call comprises a set of two Connections created by the CA on one or two Gateways
A conference call typically have many connections.
![Page 12: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/12.jpg)
Digit Maps
Most calls require the collection of DTMF digits, and their lookup in a route database by the CA
It is inefficient to be sending up each digit from the Gateway to the CA, one at a time
A digit map is a pattern provided by the CA to the Gateway to collect digits Egrep based
Digits are collected by the Gateway until the pattern is matched.
At that point, the collected digits are sent up to the CA
Example: 408xxxxxxx(408 followed by 7 digits)
![Page 13: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/13.jpg)
Events/Signals
There are telephony signals other than DTMF digits Example line states offhook/onhook etc Trunk signaling
These are communicated using Event/signal packages Packages are defined by companion RFCs, like RFC
3660(Basic MGCP packages) Generic media Line Trunk Dtmf Media Announcement
![Page 14: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/14.jpg)
Basic MGCP call components
GW1 GW2
CA(Call)
IP NetworkIP Network
endpoint endpoint
Connection 1 Connection 2
![Page 15: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/15.jpg)
Protocol structure
Request/Response Each request acknowledged by a
response There is a set of response codes that
convey the status of the request Can be run over UDP
![Page 16: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/16.jpg)
MGCP Command Format
MGCP 1.0
![Page 17: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/17.jpg)
MGCP Request
Text format ACTION TRANS-ID ENDPOINT
VERSION Parameter line Parameter line ….. Parameter line = NAME: Value Examplerqnt 4 aaln/[email protected] mgcp 1.0 r: l/hd(n)
x: 234567892
![Page 18: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/18.jpg)
MGCP Response
RESP-CODE TRANS-ID RESP-STRING Parameter line Parameter line ….. Parameter line = NAME: Value Example200 0 ok z: aaln/[email protected] z: aaln/[email protected]
![Page 19: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/19.jpg)
MGCP Requests Actions
RQNT (Request notification) Sent from CA to MGW to request notification on change
of endpoint status NTFY (Notify)
Sent from MGW to CA in response to RQNT CRCX (Create Connection)
Sent from CA to MGW MDCX (Modify Connection)
Sent from CA to MGW, e.g. provide far end info i.e. update info about the connection
DLCX (Delete Connection) Sent from CA to MGW typically. Additionally from MGW to
CA in error conditions
![Page 20: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/20.jpg)
MGCP Requests AUCX (Audit Connection)
Sent from CA to MGW to get status of a connection.(Useful in CA redundancy/failover)
AUEP (Audit Endpoint) Sent from CA to MGW to get status of an endpoint.
(Useful in CA redundancy/failover) RSIP (Restart in progress)
Sent from MGW to CA to inform the CA that it is “rebooting”
EPCF (Endpoint configuration) Sent by the CA to MGW to alert configuration of the
endpoint(things like gain level, codec, etc
![Page 21: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/21.jpg)
Key parameter types
X: Request id, RQNT/NTFY correlator C: Callid, String N: Notified entity (addr of call agent to be notified) I: Connection id S: Signal request(dialtone, ringback etc) M : Connection mode (sendonly, recvonly,
sendrecv) T: Events to be detected (on/off hook, DTMF) O: Events detected R: Events requested D: Digit map B: Bearer Information (A-law, mu-law)
during a call?
![Page 22: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/22.jpg)
MGCP Response codes
100-199 Provisional, in process
200-299 Successful
400-499 Unsuccessful, transient error
500-5xx Unsuccessful, permanent error
800-8xxPackage specific errors
000Response acknowledgement
![Page 23: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/23.jpg)
Reason codes
The reason for a certain request or response
As opposed to the Response code which is the status of executing that request
000 (normal state, used for audit) 900-9xx(Package specific)
![Page 24: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/24.jpg)
transactionID 1111
endpoint1@MGACallID 1234567Mode reconly transactionID
1111connectionID
AAAARTP format 0
G711mu
![Page 25: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/25.jpg)
Setup for call flow
Rgw2567128.96.41.1
Rgw124128.96.63.25
CA1port 5678
IP NetworkIP Network
endpoint endpoint
Connection 1 Connection 2
Joe Alice
14083238155
Route server/DB
![Page 26: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/26.jpg)
Call flow sequence
Rgw2567128.96.41.1
Rgw124128.96.63.25
CA1port 5678
IP NetworkIP Network
endpoint endpoint
Joe Alice
14083238155
Route server/DB
0(RQNT)
1(NTFY)
2(CRCX)
4(MDCX)
6(NTFY)
5(RQNT)3(CRCX))
7(MDCX)
![Page 27: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/27.jpg)
MGCP call flow (0)
RQNT 1202 aaln/[email protected] MGCP 1.0 N: [email protected]:5678 Notified Entity – CA address
X: 0123456789AC Request ID
R: L/hd(A, E(S(L/dl),R(L/oc, L/hu, D/[0-9#*T](D)))) Requested Event
D: (0T|00T|#xxxxxxx|1xxxxxxxxxx|91xxxxxxxxxx|9011x.T) DigitMap
S: Signal request
Q: process T: G/ft DetectEvents
200 1202 OK
![Page 28: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/28.jpg)
Call flow (1)
NTFY 2002 aaln/[email protected] MGCP 1.0 N: [email protected]:5678 X: 0123456789AC O: L/hd,D/1,D/4,D/0,D/8,D/3,D/2,D/3,D/8,D/1,D/5,D/5
ObservedEvents
200 2002 OK
![Page 29: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/29.jpg)
Call flow(2)
CRCX 1204 aaln/[email protected] MGCP 1.0C: A3C47F21456789F0 CallIDL: p:10, a:PCMU LocalConnectionOptions
M: recvonly
200 1204 OK I: FDE234C8
v=0 o=- 25678 753849 IN IP4 128.96.41.1 s=- c=IN IP4 128.96.41.1 t=0 0 m=audio 3456 RTP/AVP 0
![Page 30: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/30.jpg)
Call flow(3)
CRCX 1205 aaln/[email protected] MGCP 1.0 C: A3C47F21456789F0 L: p:10, a:PCMU M: sendrecv X: 0123456789AD R: L/hd S: L/rg
v=0 o=- 25678 753849 IN IP4 128.96.41.1 s=- c=IN IP4 128.96.41.1 t=0 0 m=audio 3456 RTP/AVP 0
![Page 31: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/31.jpg)
Call flow(3)
200 1205 OKK: I: DFE233D1
v=0 o=- 4723891 7428910 IN IP4 128.96.63.25 s=- c=IN IP4 128.96.63.25 t=0 0 m=audio 3456 RTP/AVP 0
![Page 32: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/32.jpg)
Call flow(4)
MDCX 1210 aaln/[email protected] MGCP 1.0 C: A3C47F21456789F0 I: FDE234C8 M: recvonly X: 0123456789AE
v=0 o=- 4723891 7428910 IN IP4 128.96.63.25 s=- c=IN IP4 128.96.63.25 t=0 0 m=audio 3456 RTP/AVP 0
200 1206 OK
![Page 33: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/33.jpg)
Call flow(5)
RQNT 1201 aaln/[email protected] MGCP 1.0N: [email protected]:5678X: 0123456789AC R: l/hd(N)S: l/rg
200 1201 OK
![Page 34: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/34.jpg)
Call flow(6)
NTFY 2002 aaln/[email protected] MGCP 1.0 N: [email protected]:5678 X: 0123456789AC O: L/hd
200 2002 OK
![Page 35: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/35.jpg)
Call flow(7)
MDCX 1210 aaln/[email protected] MGCP 1.0 C: A3C47F21456789F0 I: FDE234C8 M: sendrecv X: 0123456789AE
v=0 o=- 4723891 7428910 IN IP4 128.96.63.25 s=- c=IN IP4 128.96.63.25 t=0 0 m=audio 3456 RTP/AVP 0
200 1206 OK
![Page 36: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/36.jpg)
Teardown(on hook, alice)
NTFY 2002 aaln/[email protected] MGCP 1.0 N: [email protected]:5678 X: 0123456789AC O: L/hd
200 2002 OK
![Page 37: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/37.jpg)
Teardown(Joe)
DLCX 1210 aaln/[email protected] MGCP 1.0 C: A3C47F21456789F0 I: FDE234C8
200 1210 OK P: PS=1245, OS=62345, PR=780, OR=45123, PL=10,
JI=27, LA=48
![Page 38: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/38.jpg)
Teardown(Alice)
DLCX 1210 aaln/[email protected] MGCP 1.0 C: A3C47F21456789F0 I: FDE234C8
250 1210 OK P: PS=1245, OS=62345, PR=780, OR=45123, PL=10,
JI=27, LA=48
![Page 39: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/39.jpg)
Provisional responses/ acknowledgements
1xx class responses to requests are allowed
Eventually must be followed by a “final” response
Final response = 2/4/5xx In this case, requestor ACKs the final
response – that is what the 000 code is for
![Page 40: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/40.jpg)
Thoughts on MGCP
MGCP is a protocol that provides low level primitives for a master(CA) to control a slave(MGW) Usually more than one way to implement a
certain call flow/feature Feature implementation is in the CA and
CAs are usually very complex
![Page 41: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/41.jpg)
Variations
Callee busy Wrong number Etc. Two/Multiple Call Agents
Call Agent to Call Agent signaling is usually an “intelligent endpoint” model protocol, such as SIP.
![Page 42: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/42.jpg)
A typical PSTN usage scenario
TDMSwitch
TDMSwitch
Signaling Controller
(Signaling plane)
Data plane(TDM)
![Page 43: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/43.jpg)
Typical MGCP usage scenario
Switch Switch
MGCP CA(Signaling plane)
MGW MGW
SS7 GW
IP NetworkData Plane
IP NetworkData Plane
SCPSTP
![Page 44: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/44.jpg)
Reading exercise
Read RFC 3435, Sections 1 to 2.1.7, and the example in G.2.1, G.3.1
![Page 45: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/45.jpg)
SCCP(Cisco)
Another example of the call agent model
Skinny Client Control Protocol Binary, not text Even simpler than MGCP(no digit
maps, for example) Applicable to IP-PBX, low RTT
between phones and CA “Features” implemented on the CA,
not on the phone
![Page 46: MGCP](https://reader035.fdocuments.us/reader035/viewer/2022081508/55861fdbd8b42a7d428b5050/html5/thumbnails/46.jpg)
Wrapping up the CA model
Sometimes the CA is also termed the MGC(Media gateway controller)
H.248(also known as MEGACO) is an ITU alternative to MGCP, and operates on the same principles