From owner-freebsd-ports@FreeBSD.ORG Tue Feb 12 03:29:26 2008 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 002AC16A41A for ; Tue, 12 Feb 2008 03:29:25 +0000 (UTC) (envelope-from ganbold@micom.mng.net) Received: from publicd.ub.mng.net (publicd.ub.mng.net [202.179.0.88]) by mx1.freebsd.org (Postfix) with ESMTP id 3A62B13C45A for ; Tue, 12 Feb 2008 03:29:25 +0000 (UTC) (envelope-from ganbold@micom.mng.net) Received: from [202.179.0.164] (helo=daemon.micom.mng.net) by publicd.ub.mng.net with esmtpa (Exim 4.67 (FreeBSD)) (envelope-from ) id 1JOlpj-000AXf-FJ; Tue, 12 Feb 2008 11:29:23 +0800 Message-ID: <47B11293.7050302@micom.mng.net> Date: Tue, 12 Feb 2008 11:29:23 +0800 From: Ganbold User-Agent: Thunderbird 2.0.0.9 (X11/20071225) MIME-Version: 1.0 To: Sevan / Venture37 References: In-Reply-To: Content-Type: multipart/mixed; boundary="------------040808040002040101090006" Cc: "Phillip N." , freebsd-ports@freebsd.org Subject: Re: Asterisk-Addons 1.4.5 still wont build X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Feb 2008 03:29:26 -0000 This is a multi-part message in MIME format. --------------040808040002040101090006 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sevan / Venture37 wrote: > Use the new patch attached > > remove asterisk from your system > uninstall openh323 > then go into /usr/ports/net/asterisk > run: > make rmconfig > then: > make install > from the menu deselect h323 support > then go back to net/asterisk-addons & run make install > > I attached my patches with codec negotiation patch changes applied. It might be wrong. Please let me know. thanks, Ganbold > > _________________________________________________________________ > Who's friends with who and co-starred in what? > http://www.searchgamesbox.com/celebrityseparation.shtml > ------------------------------------------------------------------------ > > _______________________________________________ > freebsd-ports@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-ports > To unsubscribe, send any mail to "freebsd-ports-unsubscribe@freebsd.org" -- I'm in Pittsburgh. Why am I here? -- Harold Urey, Nobel Laureate --------------040808040002040101090006 Content-Type: text/x-patch; name="chan_h323.c.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="chan_h323.c.patch" --- /home/tsgan/asterisk-addons-1.4.5/asterisk-ooh323c/src/chan_h323.c 2007-07-21 15:17:52.000000000 +0800 +++ /usr/local/voip/asterisk-addons-1.4.5/asterisk-ooh323c/src/chan_h323.c 2008-02-11 17:32:38.000000000 +0800 @@ -42,8 +42,9 @@ /* Channel Definition */ -static struct ast_channel *ooh323_request(const char *type, int format, - void *data, int *cause); +//static struct ast_channel *ooh323_request(const char *type, int format, void *data, int *cause); +static struct ast_channel *ooh323_request(const char *type, const struct ast_codec_pref *format, void *data, int *cause); + static int ooh323_digit_begin(struct ast_channel *ast, char digit); static int ooh323_digit_end(struct ast_channel *ast, char digit, unsigned int duration); static int ooh323_call(struct ast_channel *ast, char *dest, int timeout); @@ -57,8 +58,7 @@ static enum ast_rtp_get_result ooh323_get_rtp_peer(struct ast_channel *chan, struct ast_rtp **rtp); static enum ast_rtp_get_result ooh323_get_vrtp_peer(struct ast_channel *chan, struct ast_rtp **rtp); -static int ooh323_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, - struct ast_rtp *vrtp, int codecs, int nat_active); +static int ooh323_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, struct ast_rtp *vrtp, const struct ast_codec_pref *codecs, int nat_active); static void print_codec_to_cli(int fd, struct ast_codec_pref *pref); static void ast_ooh323c_exit(); @@ -258,10 +258,21 @@ ast_mutex_lock(&ch->lock); ch->tech = &ooh323_tech; - ch->nativeformats = i->capability; +ast_string_field_build(ch, name, "H323/%s", host); +//if (!(fmt = i->capability)) + fmt = i->capability; + +// ch->nativeformats = i->capability; + +//ch->nativeformats = ast_codec_choose(&(i->prefs), fmt, 1)/* | (i->jointcapability & AST_FORMAT_VIDEO_MASK)*/; +ch->nativeformats = i->prefs; +// fmt = ast_best_codec(ch->nativeformats); + +// ast_codec_pref_append_missing2(&ch->nativeformats, ast_codec_choose(&i->prefs, fmt, 1)); +// i->nativeformats = ast_codec_pref_bits(&ch->nativeformats); +// fmt = ast_best_codec(i->nativeformats); - fmt = ast_best_codec(ch->nativeformats); ch->fds[0] = ast_rtp_fd(i->rtp); ch->fds[1] = ast_rtcp_fd(i->rtp); @@ -451,8 +462,7 @@ /* Possible data values - peername, exten/peername, exten@ip */ -static struct ast_channel *ooh323_request(const char *type, int format, - void *data, int *cause) +static struct ast_channel *ooh323_request(const char *type, const struct ast_codec_pref *formats, void *data, int *cause) { struct ast_channel *chan=NULL; @@ -461,22 +471,21 @@ char *dest = NULL; char *ext = NULL; char tmp[256]; - char formats[512]; - int oldformat; +// char formats[512]; +// int oldformat; char *sport = NULL; int port = 0; if(gH323Debug) - ast_verbose("--- ooh323_request - data %s format %s\n", (char*)data, - ast_getformatname_multiple(formats,512,format) ); + ast_verbose("--- ooh323_request - data %s format %s\n", (char*)data, ast_codec_pref_dump(tmp, sizeof(tmp), formats) ); - oldformat = format; - format &= ((AST_FORMAT_MAX_AUDIO << 1) - 1); - if (!format) { - ast_log(LOG_NOTICE, "Asked to get a channel of unsupported format " - "'%d'\n", format); - return NULL; - } +// oldformat = format; +// format &= ((AST_FORMAT_MAX_AUDIO << 1) - 1); +// if (!format) { +// ast_log(LOG_NOTICE, "Asked to get a channel of unsupported format " +// "'%d'\n", format); +// return NULL; +// } p = ooh323_alloc(0,0); /* Initial callRef is zero */ @@ -536,11 +545,11 @@ if(ext) strncpy(p->exten, ext, sizeof(p->exten)-1); - if(peer->capability & format) - p->capability = peer->capability & format; - else{ +// if(peer->capability & format) +// p->capability = peer->capability & format; +// else{ p->capability = peer->capability; - } +// } memcpy(&p->prefs, &peer->prefs, sizeof(struct ast_codec_pref)); p->dtmfmode = peer->dtmfmode; strncpy(p->accountcode, peer->accountcode, sizeof(p->accountcode)-1); @@ -971,11 +980,11 @@ if(f->frametype == AST_FRAME_VOICE) { - if(!(f->subclass & ast->nativeformats)) + if(!(f->subclass & ast->nativeformats.audio_bits)) { ast_log(LOG_WARNING, "Asked to transmit frame type %d, while native " "formats is %d (read/write = %d/%d)\n", - f->subclass, ast->nativeformats, ast->readformat, + f->subclass, ast->nativeformats.audio_bits, ast->readformat, ast->writeformat); return 0; } @@ -2219,12 +2228,12 @@ int x, codec; for(x = 0; x < 32 ; x++) { - codec = ast_codec_pref_index(pref, x); + codec = ast_codec_pref_index_audio(pref, x); if (!codec) break; ast_cli(fd, "%s", ast_getformatname(codec)); - ast_cli(fd, ":%d", pref->framing[x]); - if (x < 31 && ast_codec_pref_index(pref, x + 1)) + ast_cli(fd, ":%d", pref->audio_framing[x]); + if (x < 31 && ast_codec_pref_index_audio(pref, x + 1)) ast_cli(fd, ","); } if (!x) @@ -3020,13 +3029,13 @@ (ooCallData *call, struct ast_codec_pref *prefs) { int i=0; - int codec = ast_codec_pref_index(prefs, i); + int codec = ast_codec_pref_index_audio(prefs, i); ooResetCapPrefs(call); while(codec) { ooAppendCapToCapPrefs(call, ooh323_convertAsteriskCapToH323Cap(codec)); - codec = ast_codec_pref_index(prefs, ++i); + codec = ast_codec_pref_index_audio(prefs, ++i); } return 0; @@ -3058,7 +3067,7 @@ static int ooh323_set_rtp_peer (struct ast_channel *chan, struct ast_rtp *rtp, struct ast_rtp *vrtp, - int codecs, int nat_active) + const struct ast_codec_pref *codecs, int nat_active) { /* XXX Deal with Video */ struct ooh323_pvt *p; @@ -3106,7 +3115,7 @@ strncpy(mediaInfo.lMediaIP, ast_inet_ntoa(us.sin_addr), sizeof(mediaInfo.lMediaIP)-1); mediaInfo.lMediaPort = ntohs(us.sin_port); mediaInfo.lMediaCntrlPort = mediaInfo.lMediaPort +1; - for(x=0; 0 != (format=ast_codec_pref_index(&p->prefs, x)); x++) + for(x=0; 0 != (format=ast_codec_pref_index_audio(&p->prefs, x)); x++) { strcpy(mediaInfo.dir, "transmit"); mediaInfo.cap = ooh323_convertAsteriskCapToH323Cap(format); @@ -3250,10 +3259,13 @@ /* We already hold the channel lock */ if (f->frametype == AST_FRAME_VOICE) { - if (f->subclass != p->owner->nativeformats) + if (f->subclass != p->owner->nativeformats.audio_bits) { ast_log(LOG_DEBUG, "Oooh, format changed to %d\n", f->subclass); - p->owner->nativeformats = f->subclass; + p->owner->nativeformats.audio_bits = f->subclass; +// ast_codec_pref_append(&p->owner->nativeformats, f->subclass); +// p->nativeformats |= f->subclass; +// ast_codec_pref_set2(&p->owner->nativeformats, p->nativeformats); ast_set_read_format(p->owner, p->owner->readformat); ast_set_write_format(p->owner, p->owner->writeformat); } --------------040808040002040101090006 Content-Type: text/x-patch; name="ooh323cDriver.c.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="ooh323cDriver.c.patch" --- /home/tsgan/asterisk-addons-1.4.5/asterisk-ooh323c/src/ooh323cDriver.c 2007-01-20 06:27:05.000000000 +0800 +++ /usr/local/voip/asterisk-addons-1.4.5/asterisk-ooh323c/src/ooh323cDriver.c 2008-02-11 16:47:24.000000000 +0800 @@ -66,7 +66,7 @@ if(gH323Debug) ast_verbose("\tAdding capabilities to H323 endpoint\n"); - for(x=0; 0 != (format=ast_codec_pref_index(prefs, x)); x++) + for(x=0; 0 != (format=ast_codec_pref_index_audio(prefs, x)); x++) { if(format & AST_FORMAT_ULAW) { @@ -172,14 +172,14 @@ ret |= ooCallEnableDTMFH245Signal(call); - for(x=0; 0 !=(format=ast_codec_pref_index(prefs, x)); x++) + for(x=0; 0 !=(format=ast_codec_pref_index_audio(prefs, x)); x++) { if(format & AST_FORMAT_ULAW) { if(gH323Debug) ast_verbose("\tAdding g711 ulaw capability to call(%s, %s)\n", call->callType, call->callToken); - txframes = prefs->framing[x]; + txframes = prefs->audio_framing[x]; ret= ooCallAddG711Capability(call, OO_G711ULAW64K, txframes, grxframes, OORXANDTX, &ooh323c_start_receive_channel, @@ -192,7 +192,7 @@ if(gH323Debug) ast_verbose("\tAdding g711 alaw capability to call(%s, %s)\n", call->callType, call->callToken); - txframes = prefs->framing[x]; + txframes = prefs->audio_framing[x]; ret= ooCallAddG711Capability(call, OO_G711ALAW64K, txframes, grxframes, OORXANDTX, &ooh323c_start_receive_channel, @@ -206,7 +206,7 @@ if(gH323Debug) ast_verbose("\tAdding g729A capability to call(%s, %s)\n", call->callType, call->callToken); - txframes = (prefs->framing[x])/10; + txframes = (prefs->audio_framing[x])/10; ret= ooCallAddG729Capability(call, OO_G729A, txframes, 24, OORXANDTX, &ooh323c_start_receive_channel, &ooh323c_start_transmit_channel, --------------040808040002040101090006--