rename some keys in the ng protocol (replace dash with space) but retain compatibility

git.mgm/mediaproxy-ng/github/master
Richard Fuchs 12 years ago
parent 24fe545614
commit 13ad0428e6

@ -516,10 +516,10 @@ Optionally included keys are:
The value of the `flags` key is a list. The list contains zero or more of the following strings: The value of the `flags` key is a list. The list contains zero or more of the following strings:
- `trust-address` - `trust address`
If given, the media addresses from the SDP body are trusted as correct endpoints. Otherwise, the If given, the media addresses from the SDP body are trusted as correct endpoints. Otherwise, the
address is taken from the `received-from` key. Corresponds to the *rtpproxy* `r` flag. address is taken from the `received from` key. Corresponds to the *rtpproxy* `r` flag.
- `symmetric` - `symmetric`
@ -539,7 +539,7 @@ Optionally included keys are:
Replace the address found in the *origin* (o=) line of the SDP body. Corresponds Replace the address found in the *origin* (o=) line of the SDP body. Corresponds
to *rtpproxy* `o` flag. to *rtpproxy* `o` flag.
- `session-connection` - `session connection`
Replace the address found in the *session-level connection* (c=) line of the SDP body. Replace the address found in the *session-level connection* (c=) line of the SDP body.
Corresponds to *rtpproxy* `c` flag. Corresponds to *rtpproxy* `c` flag.
@ -556,11 +556,11 @@ Optionally included keys are:
*Mediaproxy-ng* uses the direction to implement bridging between IPv4 and IPv6: internal is seen as *Mediaproxy-ng* uses the direction to implement bridging between IPv4 and IPv6: internal is seen as
IPv4 and external as IPv6. IPv4 and external as IPv6.
* `received-from` * `received from`
Contains a list of exactly two elements. The first element denotes the address family and the second Contains a list of exactly two elements. The first element denotes the address family and the second
element is the SIP message's source address itself. The address family can be one of `IP4` or `IP6`. element is the SIP message's source address itself. The address family can be one of `IP4` or `IP6`.
Used if the `trust-address` flag isn't present. Used if the `trust address` flag isn't present.
* `ICE` * `ICE`
@ -573,7 +573,7 @@ Optionally included keys are:
This flag operates independently of the `replace` flags. This flag operates independently of the `replace` flags.
* `transport-protocol` * `transport protocol`
The transport protocol specified in the SDP body is to be rewritten to the string value given here. The transport protocol specified in the SDP body is to be rewritten to the string value given here.
The media The media
@ -586,9 +586,9 @@ An example of a complete `offer` request dictionary could be (SDP body abbreviat
{ "command": "offer", "call-id": "cfBXzDSZqhYNcXM", "from-tag": "mS9rSAn0Cr", { "command": "offer", "call-id": "cfBXzDSZqhYNcXM", "from-tag": "mS9rSAn0Cr",
"sdp": "v=0\r\no=...", "via-branch": "5KiTRPZHH1nL6", "sdp": "v=0\r\no=...", "via-branch": "5KiTRPZHH1nL6",
"flags": [ "trust-address" ], "replace": [ "origin", "session-connection" ], "flags": [ "trust address" ], "replace": [ "origin", "session connection" ],
"direction": [ "external", "external" ], "received-from": [ "IP4", "10.65.31.43" ], "direction": [ "external", "external" ], "received-from": [ "IP4", "10.65.31.43" ],
"ICE": "force", "transport-protocol": "RTP/SAVPF" } "ICE": "force", "transport protocol": "RTP/SAVPF" }
The response message only contains the key `sdp` in addition to `result`, which contains the re-written The response message only contains the key `sdp` in addition to `result`, which contains the re-written
SDP body that the SIP proxy should insert into the SIP message. SDP body that the SIP proxy should insert into the SIP message.

@ -2564,12 +2564,14 @@ static void call_ng_process_flags(struct sdp_ng_flags *out, bencode_item_t *inpu
if ((list = bencode_dictionary_get_expect(input, "flags", BENCODE_LIST))) { if ((list = bencode_dictionary_get_expect(input, "flags", BENCODE_LIST))) {
for (it = list->child; it; it = it->sibling) { for (it = list->child; it; it = it->sibling) {
if (!bencode_strcmp(it, "trust-address")) if (!bencode_strcmp(it, "trust address"))
out->trust_address = 1; out->trust_address = 1;
else if (!bencode_strcmp(it, "symmetric")) else if (!bencode_strcmp(it, "symmetric"))
out->symmetric = 1; out->symmetric = 1;
else if (!bencode_strcmp(it, "asymmetric")) else if (!bencode_strcmp(it, "asymmetric"))
out->asymmetric = 1; out->asymmetric = 1;
else if (!bencode_strcmp(it, "trust-address"))
out->trust_address = 1;
} }
} }
@ -2577,6 +2579,8 @@ static void call_ng_process_flags(struct sdp_ng_flags *out, bencode_item_t *inpu
for (it = list->child; it; it = it->sibling) { for (it = list->child; it; it = it->sibling) {
if (!bencode_strcmp(it, "origin")) if (!bencode_strcmp(it, "origin"))
out->replace_origin = 1; out->replace_origin = 1;
else if (!bencode_strcmp(it, "session connection"))
out->replace_sess_conn = 1;
else if (!bencode_strcmp(it, "session-connection")) else if (!bencode_strcmp(it, "session-connection"))
out->replace_sess_conn = 1; out->replace_sess_conn = 1;
} }
@ -2593,7 +2597,9 @@ static void call_ng_process_flags(struct sdp_ng_flags *out, bencode_item_t *inpu
} }
} }
list = bencode_dictionary_get_expect(input, "received-from", BENCODE_LIST); list = bencode_dictionary_get_expect(input, "received from", BENCODE_LIST);
if (!list)
list = bencode_dictionary_get_expect(input, "received-from", BENCODE_LIST);
if (list && (it = list->child)) { if (list && (it = list->child)) {
bencode_get_str(it, &out->received_from_family); bencode_get_str(it, &out->received_from_family);
bencode_get_str(it->sibling, &out->received_from_address); bencode_get_str(it->sibling, &out->received_from_address);
@ -2606,7 +2612,9 @@ static void call_ng_process_flags(struct sdp_ng_flags *out, bencode_item_t *inpu
out->ice_force = 1; out->ice_force = 1;
} }
bencode_dictionary_get_str(input, "transport-protocol", &out->transport_protocol_str); bencode_dictionary_get_str(input, "transport protocol", &out->transport_protocol_str);
if (!out->transport_protocol_str.s)
bencode_dictionary_get_str(input, "transport-protocol", &out->transport_protocol_str);
out->transport_protocol = transport_protocol(&out->transport_protocol_str); out->transport_protocol = transport_protocol(&out->transport_protocol_str);
} }

Loading…
Cancel
Save