[Asterisk-Users] Native Bridging and Polycom 600 Solved
Christian Hecimovic
checimovic at qworks.ca
Wed Dec 10 14:59:37 MST 2003
Hi,
The Polycom 600 phones do not natively bridge with Asterisk. I've solved the
problem, but I'm not sure how general it is, so I thought I'd ask this list
for advice.
It's necessary to use a recent Asterisk CVS for this, since there was a
problem with session versions in earlier CVS builds.
The problem now is the Via field. When the reinvite goes out, the branch
number does not change from its value in the previous invite. However, the
Polycom phone tracks its transactions this way - the branch numbers must be
different for new invites. So here's the change:
In chan_sip.c, in transmit_reinvite_with_sdp():
static int transmit_reinvite_with_sdp(struct sip_pvt *p, struct ast_rtp *rtp,
struct ast_rtp *vrtp)
{
struct sip_request req;
if (p->canreinvite == REINVITE_UPDATE)
reqprep(&req, p, "UPDATE", 0);
else {
// BEGIN POLYCOM CHANGE
p->branch++;
snprintf(p->via, sizeof(p->via), "SIP/2.0/UDP
%s:%d;branch=z9hG4bK%08x", inet_ntoa(p->ourip), ourport, p->branch);
// END POLYCOM CHANGE
reqprep(&req, p, "INVITE", 0);
}
... the rest of the method follows.
Does anyone with any detailed knowledge of other SIP phones know if this will
cause something bad to happen? And, if any Asterisk developers are reading,
could they comment if this will cause problems (memory, etc.)?
Thanks,
Christian
More information about the asterisk-users
mailing list