Hi, Sivaramkrishna Neeruganti schrieb:
Hi ,I am attaching the sip debug messages enabled on asterisk server .the present status is that when i call from Mirial softphone ,the call gets established and gets disconnected after a while .i can't see video on mcuWeb page .i think i have done all things correctly but i am stuck with this thing .please help me out of this problem .
[...] Asterisk does not support video format negotiation. You could use the attached patch for fake it. Here are the parameters I use in the sip peers with the Cisco 9971 phones: video_fmtp=profile-level-id=42801E\;packetization-mode=0\;level-asymmetry-allowed=1 video_btias=1000000 video_imageattr=recv [x=640,y=480,q=0.50] You should add your own parameters in there. Regards, Artem
diff -Nur asterisk-1.8.4.4/channels/chan_sip.c asterisk-1.8.4.4-video-patch-ol/channels/chan_sip.c --- asterisk-1.8.4.4/channels/chan_sip.c 2011-06-28 22:08:33.000000000 +0200 +++ asterisk-1.8.4.4-video-patch-ol/channels/chan_sip.c 2011-07-28 19:27:11.000000000 +0200 @@ -5110,6 +5110,12 @@ ast_string_field_set(dialog, fromuser, peer->fromuser); if (!ast_strlen_zero(peer->language)) ast_string_field_set(dialog, language, peer->language); + if (!ast_strlen_zero(peer->video_fmtp)) + ast_string_field_set(dialog, video_fmtp, peer->video_fmtp); + if (!ast_strlen_zero(peer->video_imageattr)) + ast_string_field_set(dialog, video_imageattr, peer->video_imageattr); + if (!ast_strlen_zero(peer->video_btias)) + ast_string_field_set(dialog, video_btias, peer->video_btias); /* Set timer T1 to RTT for this peer (if known by qualify=) */ /* Minimum is settable or default to 100 ms */ /* If there is a maxms and lastms from a qualify use that over a manual T1 @@ -10495,6 +10501,16 @@ ast_rtp_lookup_mime_subtype2(1, codec, 0), ast_rtp_lookup_sample_rate2(1, codec)); /* Add fmtp code here */ + if (codec & 0x200000) { + if (!ast_strlen_zero(p->video_fmtp)) { + ast_verbose("Adding custom video_fmtp %s\n", p->video_fmtp); + ast_str_append(a_buf, 0, "a=fmtp:%d %s\r\n", rtp_code, p->video_fmtp); + } + if (!ast_strlen_zero(p->video_imageattr)) { + ast_verbose("Adding custom video_imageattr %s\n", p->video_imageattr); + ast_str_append(a_buf, 0, "a=imageattr:%d %s\r\n", rtp_code, p->video_imageattr); + } + } } /*! \brief Add text codec offer to SDP offer/answer body in INVITE or 200 OK */ @@ -11007,6 +11023,9 @@ ast_str_append(&m_audio, 0, "\r\n"); if (needvideo) ast_str_append(&m_video, 0, "\r\n"); + if (!ast_strlen_zero(p->video_btias)) { + ast_str_append(&m_video, 0, "b=TIAS:%s\r\n", p->video_btias); + } if (needtext) ast_str_append(&m_text, 0, "\r\n"); @@ -15293,6 +15312,9 @@ ast_string_field_set(p, peersecret, peer->secret); ast_string_field_set(p, peermd5secret, peer->md5secret); ast_string_field_set(p, language, peer->language); + ast_string_field_set(p, video_fmtp, peer->video_fmtp); + ast_string_field_set(p, video_imageattr, peer->video_imageattr); + ast_string_field_set(p, video_btias, peer->video_btias); ast_string_field_set(p, accountcode, peer->accountcode); p->amaflags = peer->amaflags; p->callgroup = peer->callgroup; @@ -16704,6 +16726,9 @@ ast_cli(fd, " Parkinglot : %s\n", peer->parkinglot); ast_cli(fd, " Use Reason : %s\n", AST_CLI_YESNO(ast_test_flag(&peer->flags[1], SIP_PAGE2_Q850_REASON))); ast_cli(fd, " Encryption : %s\n", AST_CLI_YESNO(ast_test_flag(&peer->flags[1], SIP_PAGE2_USE_SRTP))); + ast_cli(fd, " video_fmtp : %s\n", peer->video_fmtp); + ast_cli(fd, " video_imageat: %s\n", peer->video_imageattr); + ast_cli(fd, " video_btias : %s\n", peer->video_btias); ast_cli(fd, "\n"); peer = unref_peer(peer, "sip_show_peer: unref_peer: done with peer ptr"); } else if (peer && type == 1) { /* manager listing */ @@ -16791,6 +16816,9 @@ astman_append(s, "Reg-Contact: %s\r\n", peer->fullcontact); astman_append(s, "QualifyFreq: %d ms\r\n", peer->qualifyfreq); astman_append(s, "Parkinglot: %s\r\n", peer->parkinglot); + astman_append(s, "video_fmtp: %s\r\n", peer->video_fmtp); + astman_append(s, "video_imageattr: %s\r\n", peer->video_imageattr); + astman_append(s, "video_btias: %s\r\n", peer->video_btias); if (peer->chanvars) { for (v = peer->chanvars ; v ; v = v->next) { astman_append(s, "ChanVariable: %s=%s\r\n", v->name, v->value); @@ -18526,6 +18554,12 @@ peer_status(peer, buf, len); } else if (!strcasecmp(colname, "language")) { ast_copy_string(buf, peer->language, len); + } else if (!strcasecmp(colname, "video_fmtp")) { + ast_copy_string(buf, peer->video_fmtp, len); + } else if (!strcasecmp(colname, "video_imageattr")) { + ast_copy_string(buf, peer->video_imageattr, len); + } else if (!strcasecmp(colname, "video_btias")) { + ast_copy_string(buf, peer->video_btias, len); } else if (!strcasecmp(colname, "regexten")) { ast_copy_string(buf, peer->regexten, len); } else if (!strcasecmp(colname, "limit")) { @@ -25923,6 +25957,9 @@ ast_string_field_set(peer, fromdomain, ""); ast_string_field_set(peer, fromuser, ""); ast_string_field_set(peer, regexten, ""); + ast_string_field_set(peer, video_fmtp, ""); + ast_string_field_set(peer, video_imageattr, ""); + ast_string_field_set(peer, video_btias, ""); peer->callgroup = 0; peer->pickupgroup = 0; peer->maxms = default_qualify; @@ -26298,6 +26335,12 @@ } } else if (!strcasecmp(v->name, "language")) { ast_string_field_set(peer, language, v->value); + } else if (!strcasecmp(v->name, "video_fmtp")) { + ast_string_field_set(peer, video_fmtp, ast_unescape_semicolon((char *)v->value)); + } else if (!strcasecmp(v->name, "video_imageattr")) { + ast_string_field_set(peer, video_imageattr, ast_unescape_semicolon((char *)v->value)); + } else if (!strcasecmp(v->name, "video_btias")) { + ast_string_field_set(peer, video_btias, v->value); } else if (!strcasecmp(v->name, "regexten")) { ast_string_field_set(peer, regexten, v->value); } else if (!strcasecmp(v->name, "callbackextension")) { @@ -28888,7 +28931,10 @@ MEMBER(sip_peer, maxms, AST_DATA_MILLISECONDS) \ MEMBER(sip_peer, qualifyfreq, AST_DATA_MILLISECONDS) \ MEMBER(sip_peer, timer_t1, AST_DATA_MILLISECONDS) \ - MEMBER(sip_peer, timer_b, AST_DATA_MILLISECONDS) + MEMBER(sip_peer, timer_b, AST_DATA_MILLISECONDS) \ + MEMBER(sip_peer, video_fmtp, AST_DATA_STRING) \ + MEMBER(sip_peer, video_imageattr, AST_DATA_STRING) \ + MEMBER(sip_peer, video_btias, AST_DATA_STRING) AST_DATA_STRUCTURE(sip_peer, DATA_EXPORT_SIP_PEER); diff -Nur asterisk-1.8.4.4/channels/sip/include/sip.h asterisk-1.8.4.4-video-patch-ol/channels/sip/include/sip.h --- asterisk-1.8.4.4/channels/sip/include/sip.h 2011-04-25 17:11:30.000000000 +0200 +++ asterisk-1.8.4.4-video-patch-ol/channels/sip/include/sip.h 2011-07-28 19:21:09.000000000 +0200 @@ -964,6 +964,9 @@ AST_STRING_FIELD(parkinglot); /*!< Parkinglot */ AST_STRING_FIELD(engine); /*!< RTP engine to use */ AST_STRING_FIELD(dialstring); /*!< The dialstring used to call this SIP endpoint */ + AST_STRING_FIELD(video_fmtp); + AST_STRING_FIELD(video_imageattr); + AST_STRING_FIELD(video_btias); ); char via[128]; /*!< Via: header */ int maxforwards; /*!< SIP Loop prevention */ @@ -1184,6 +1187,9 @@ AST_STRING_FIELD(mwi_from); /*!< Name to place in From header for outgoing NOTIFY requests */ AST_STRING_FIELD(engine); /*!< RTP Engine to use */ AST_STRING_FIELD(unsolicited_mailbox); /*!< Mailbox to store received unsolicited MWI NOTIFY messages information in */ + AST_STRING_FIELD(video_fmtp); + AST_STRING_FIELD(video_imageattr); + AST_STRING_FIELD(video_btias); ); struct sip_socket socket; /*!< Socket used for this peer */ enum sip_transport default_outbound_transport; /*!< Peer Registration may change the default outbound transport.
smime.p7s
Description: Kryptographische S/MIME-Signatur
-- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- asterisk-video mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-video