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
