Can't you just omit telling mod_conference to not check a pin when you see your variable.<br><br><br><div class="gmail_quote">On Thu, Sep 3, 2009 at 9:20 AM, Robert Joly <span dir="ltr"><<a href="mailto:rjoly@nortel.com">rjoly@nortel.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
Hi,<br>
I work on a SIP PBX project that is using FreeSWITCH as a audio<br>
conference server which is working great. The audio conferencing is<br>
very well integrated in out web-based configuration server and allows<br>
the owner of the conference to control it (mute, unmute, isolate, ...)<br>
from a browser. One other neat thing a conference owner can do through<br>
the browser is to invite additional parties to the conference by typing<br>
in a SIP URI. This causes our SIP PBX to do 3rd party call control to<br>
refer the invited party to the proper conference. This works very well<br>
for conferences that do not require a PIN but breaks for conferences<br>
that do. In the latter case, when the invited party answers the call,<br>
he hears "please enter your conference access number" out of context.<br>
Given that this scenario is less that ideal I started looking for<br>
solutions what would allow someone to join a 'PIN-guarded' conference<br>
without being prompted for one. I looked at a variety of dialplan-based<br>
options without success and turned to another option which I<br>
successfully prototyped. The purpose of this post is to socialize the<br>
solution I came up with to get feedback and to ultimately learn what<br>
needs to be done to get this functionality committed in the code base.<br>
<br>
The high-level solution I came up with consists the following:<br>
1- add the conference PIN to the INVITE that is sent to FreeSWITCH;<br>
2- have conference dialplan set a well-known dialplan variable with the<br>
content of the PIN as extracted from the INVITE;<br>
3- have mod_conference test the pin contained in the well-known dialplan<br>
variable before deciding to prompt the user to enter a PIN.<br>
<br>
The solution I prototyped supports two ways of adding the PIN to an<br>
INVITE. First, the pin can be included as a well-known URL parameter<br>
added to the INVITE, e.g. INVITE<br>
sip:myconf@myfreeswitch.local;X-ConfPin=1234 SIP/2.0. When the PIN is<br>
passed as a URL parameter, the conference dialplan needs to be of the<br>
following form to allow PIN-less entry:<br>
<br>
<extension name="700"><br>
<condition field="destination_number" expression="^700$"><br>
<action application="set" data="supplied_pin=${sip_req_params}"/><br>
<action application="conference" data="myconf@700+1234"/><br>
</condition><br>
</extension><br>
<br>
The other way of adding a PIN to an INVITE is to add a user-chosen<br>
proprietary header containing the PIN to the INVITE, e.g.<br>
X-My-Custom-Pin-Header: 1234. When the PIN is passed as a header, the<br>
conference dialplan needs to be of the following form to allow PIN-less<br>
entry:<br>
<br>
<extension name="700"><br>
<condition field="destination_number" expression="^700$"><br>
<action application="set"<br>
data="supplied_pin=${sip_h_X-My-Custom-Pin-Header}"/><br>
<action application="conference" data="myconf@700+1234"/><br>
</condition><br>
</extension><br>
<br>
Whichever method is taken, the end results are similar, i.e. the<br>
'supplied-pin' dialplan variable is initialized with the conference PIN<br>
passed in the INVITE. All that is left to do is for the mod_conference<br>
to look-up the variable and extract the PIN out of it if non-empty and<br>
use it as though the user entered it from his keypad. If the PIN is not<br>
the correct one, the logic defaults to prompting the user. The<br>
mod_conference patch is attached to this post which essentially consists<br>
in adding 10 lines of code (if you ignore the lines changed because of<br>
indentation).<br>
<br>
Does this approach sound reasonable to you? If so, I'll open a tracker<br>
describing the problem and solution and attach my patch to it so that it<br>
can be committed.<br>
<br>
Thank you very much in advance,<br>
<font color="#888888">Robert<br>
</font><br>_______________________________________________<br>
FreeSWITCH-dev mailing list<br>
<a href="mailto:FreeSWITCH-dev@lists.freeswitch.org">FreeSWITCH-dev@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Anthony Minessale II<br><br>FreeSWITCH <a href="http://www.freeswitch.org/">http://www.freeswitch.org/</a><br>ClueCon <a href="http://www.cluecon.com/">http://www.cluecon.com/</a><br>
Twitter: <a href="http://twitter.com/FreeSWITCH_wire">http://twitter.com/FreeSWITCH_wire</a><br><br>AIM: anthm<br><a href="mailto:MSN%3Aanthony_minessale@hotmail.com">MSN:anthony_minessale@hotmail.com</a><br>GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com">PAYPAL:anthony.minessale@gmail.com</a><br>
IRC: <a href="http://irc.freenode.net">irc.freenode.net</a> #freeswitch<br><br>FreeSWITCH Developer Conference<br><a href="mailto:sip%3A888@conference.freeswitch.org">sip:888@conference.freeswitch.org</a><br><a href="http://iax:guest@conference.freeswitch.org/888">iax:guest@conference.freeswitch.org/888</a><br>
<a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org">googletalk:conf+888@conference.freeswitch.org</a><br>pstn:213-799-1400<br>