aboutsummaryrefslogtreecommitdiffstats
path: root/rtp.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-04-05 23:34:56 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-04-05 23:34:56 +0000
commit899e2d0fe0e767b9c8b6557e273514efbd4b54da (patch)
treea2305eba9473a2b024b26cedd866d2c82d544b3b /rtp.c
parent4c012d7a1f091d19d82f299ba66ea01154a4d77c (diff)
report non-codec capabilities in 'sip debug' properly (bug #3960)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5416 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'rtp.c')
-rwxr-xr-xrtp.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/rtp.c b/rtp.c
index a81e5a7db..d4989db00 100755
--- a/rtp.c
+++ b/rtp.c
@@ -805,7 +805,7 @@ struct rtpPayloadType ast_rtp_lookup_pt(struct ast_rtp* rtp, int pt)
}
/* Looks up an RTP code out of our *static* outbound list */
-int ast_rtp_lookup_code(struct ast_rtp* rtp, int isAstFormat, int code) {
+int ast_rtp_lookup_code(struct ast_rtp* rtp, const int isAstFormat, const int code) {
int pt;
@@ -838,7 +838,7 @@ int ast_rtp_lookup_code(struct ast_rtp* rtp, int isAstFormat, int code) {
return -1;
}
-char* ast_rtp_lookup_mime_subtype(int isAstFormat, int code) {
+char* ast_rtp_lookup_mime_subtype(const int isAstFormat, const int code) {
int i;
@@ -850,6 +850,27 @@ char* ast_rtp_lookup_mime_subtype(int isAstFormat, int code) {
return "";
}
+char *ast_rtp_lookup_mime_multiple(char *buf, int size, const int capability, const int isAstFormat)
+{
+ int format;
+
+ if (!buf || !size)
+ return NULL;
+
+ snprintf(buf, size, "0x%x (", capability);
+
+ for (format = 1; format < AST_RTP_MAX; format <<= 1) {
+ if (capability & format) {
+ const char *name = ast_rtp_lookup_mime_subtype(isAstFormat, format);
+ snprintf(buf + strlen(buf), size - strlen(buf), "%s|", name);
+ }
+ }
+ if (!ast_strlen_zero(buf))
+ buf[strlen(buf)] = ')';
+
+ return buf;
+}
+
static int rtp_socket(void)
{
int s;