[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freeswitch-users
Subject:    Re: [Freeswitch-users] mod_gsmopen - deadlock tty
From:       Luiz Fernando Softov <fernando () softov ! com ! br>
Date:       2015-09-27 2:53:35
Message-ID: CAKy26iOUkWsr-KA5uDANk6FPZbwZyb7OkW+D4J2wEJCXohdmDA () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hi, i sent a e-mail to you, with the diff, files and give you access to web
interface of the system.

I will wait you to read, confirm and reply my e-mail.

Thanks a lot for the help.

2015-09-26 15:28 GMT-04:00 Giovanni Maruzzelli <gmaruzz@gmail.com>:

> As per chat, I'm "gmaruzz" in both FreeSWITCH's hipchat and in IRC
> #freeswitch channel at irc.freenode.net
> 
> -giovanni
> 
> On Sat, Sep 26, 2015 at 9:25 PM, Giovanni Maruzzelli <gmaruzz@gmail.com>
> wrote:
> 
> > On Fri, Sep 25, 2015 at 11:30 PM, Luiz Fernando Softov <
> > fernando@softov.com.br> wrote:
> > 
> > > Now, i make some changes, and until now it's running fine
> > > 
> > > I think the problem was when you declare interface as dead, like line
> > > 674 of gsmopen_protocol.cpp
> > > 
> > > 
> > > https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse/src/mod/endpoints/mod_gsmopen/gsmopen_protocol.cpp
> > >  
> > > alarm_event(tech_pvt, ALARM_FAILED_INTERFACE, "gsmopen_serial_monitor
> > > failed, declaring interface dead");
> > > tech_pvt->active = 0;
> > > ->>>> tech_pvt->name[0] = '\0';
> > > 
> > > You make a \0 in interface name
> > > 
> > > So, when someone call remove_interface() in mod_gsmopen.cpp
> > > 
> > > 
> > > https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse/src/mod/endpoints/mod_gsmopen/mod_gsmopen.cpp
> > >  
> > > To grab the tech_pvt, the function check for strlen or compare
> > > GSMOPEN_INTERFACES[interface_id].name (line 322 and 329)
> > > 
> > > Then, we will not found interface (tech_pvt), because "name" is nothing
> > > 
> > > 
> > > 
> > continuing, in line 336 it's check if there is a tech_pvt
> > > 
> > > if (!tech_pvt) {
> > > DEBUGA_GSMOPEN("interface '%s' does not exist\n", GSMOPEN_P_LOG,
> > > the_interface);
> > > goto end;
> > > }
> > > 
> > > This check will jump the Close in line 385, causing a deadlock opened fd.
> > > res = tech_pvt->serialPort_serial_control->Close();
> > > 
> > > So i comment every line when you set tech_pvt->name[0] = '\0';
> > > 
> > > It's correct? Since when interface failed, and it's declared as died,
> > > the serial isn't closed, just marked as died, and the tty still opened
> > > causing a deadlock, if no one close this.
> > > 
> > > 
> > your reasoning seems sound, is the system still running ok?
> > 
> > 
> > Have you changed anything else?
> > 
> > Can you send me (to my mail, as an attach) a git diff? Or open a jira
> > attaching that diff?
> > 
> > Btw, yes, I'm interested in understanding better how your system works
> > (daemon, attach-detach, and all).
> > 
> > Also, big thanks for taking the time to look into the source code!!!
> > 
> > -giovanni
> > 
> > 
> > 
> > 
> > 
> > > 
> > > 
> > > 
> > > 
> > > 2015-09-25 14:10 GMT-04:00 Luiz Fernando Softov <fernando@softov.com.br>
> > > > 
> > > 
> > > > I make a daemon, witch manage USB using kqueue and other things, so,
> > > > every time i plug or unplug a modem, i make a event, like ARRIVE and LEAVE.
> > > > 
> > > > This daemon have a list of modems, correlate with ttys ids - U3G (U0.0,
> > > > U0.1, U0.2) and UMODEM (U0 U1 U2)
> > > > 
> > > > So, when a modem ARRIVE, and it's "attached" (configured), i call a
> > > > "gsm reload".
> > > > When a modem LEAVE, i call a gsm remove interface_x.
> > > > 
> > > > Using mod_xml_curl, i have dynamic config.
> > > > 
> > > > I use events, like gsmopen_dump list, to manage and controll
> > > > interfaces, like when user "detach" a modem.
> > > > 
> > > > If you want, send me a e-mail, i will give access to my system and you
> > > > can see what i'm talking about.
> > > > 
> > > > 
> > > > Anyway, i found things like in function
> > > > 
> > > > int gsmopen_serial_write_AT_noack(private_t *tech_pvt, const char *data)
> > > > 
> > > > // You make
> > > > LOKKA(tech_pvt->controldev_lock);
> > > > 
> > > > Then call gsmopen_serial_write_AT(tech_pvt, data), and
> > > > inside gsmopen_serial_write_AT, when something is wrong, you
> > > > make UNLOCKA(tech_pvt->controldev_lock); and return -1
> > > > 
> > > > But, you check if (gsmopen_serial_write_AT(tech_pvt, data) != (int)
> > > > strlen(data)) {
> > > > 
> > > > Then, you make again UNLOCKA(tech_pvt->controldev_lock);
> > > > 
> > > > Why make two times UNLOCKA(tech_pvt->controldev_lock); ?
> > > > 
> > > > It's like
> > > > LOKKA(tech_pvt->controldev_lock);
> > > > UNLOCKA(tech_pvt->controldev_lock);
> > > > UNLOCKA(tech_pvt->controldev_lock);
> > > > 
> > > > 
> > > > Another is in
> > > > int gsmopen_serial_read_AT(private_t *tech_pvt, int look_for_ack, int
> > > > timeout_usec, int timeout_sec, const char *expected_string, int expect_crlf)
> > > > You make a LOKKA(tech_pvt->controldev_lock);, but there is some returns
> > > > (inside try catch), without UNLOCKA.
> > > > 
> > > > Sorry if i make some mistakes in my explanation, but i just want to
> > > > undestand how this funcions works.
> > > > 
> > > > I disagree with "Shaabir" about this module is not useable. I just
> > > > think this need some changes to work fine.
> > > > I already test this module with 40 modems for 7 days, and it's work
> > > > fine, until i grab a deadlock in USB.
> > > > 
> > > > Giovanni, if you have time to chat with me, i will be grateful.
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 2015-09-25 12:41 GMT-04:00 Giovanni Maruzzelli <gmaruzz@gmail.com>:
> > > > 
> > > > > for plugging and unplugging modems, that's a very difficult thing to
> > > > > manage, this is the best I can come out with (and probably does not work in
> > > > > freebsd):
> > > > > 
> > > > > 
> > > > > http://wiki.freeswitch.org/wiki/GSMopen#IMEI_and_IMSI_automatic_device_discovery_.28only_on_Linux.29_2
> > > > >  
> > > > > you're welcome to find a similar mechanism, and file a jira with a
> > > > > pull request, so it will be inserted in manline.
> > > > > 
> > > > > If your modifications only apply to freebsd, please use #ifdefs, so it
> > > > > still continue to compile and work in Linux.
> > > > > 
> > > > > -giovanni
> > > > > 
> > > > > 
> > > > > Sincerely,
> > > > > 
> > > > > Giovanni Maruzzelli
> > > > > Cell : +39-347-2665618
> > > > > 
> > > > > On Fri, Sep 25, 2015 at 6:24 PM, Luiz Fernando Softov <
> > > > > fernando@softov.com.br> wrote:
> > > > > 
> > > > > > I'm using a USB with power supply.
> > > > > > 
> > > > > > But sometimes it's just happen. Sometimes user remove and plug modem
> > > > > > again.
> > > > > > 
> > > > > > I can't use Debian, because our system depends of FreeBSD, and we
> > > > > > have a lot of source (daemons) running, based, on that platform. And we \
> > > > > > use kqueue, I think Debian don't have kqueue, it's like epool, but \
> > > > > > better, much better.
> > > > > > 
> > > > > > Anyway, I don't That it's a kernel problem, because, since I have
> > > > > > another daemon, attached in ttyx.0 (mod_gsmopen attach to ttyx.3), and \
> > > > > > when modem power off or "reset", only ttyx.3 still locked.
> > > > > > 
> > > > > > I'm trying to read the source to figure what's happening, but it's
> > > > > > hard to read, not because the source is difficult, but because isn't
> > > > > > organized.
> > > > > > 
> > > > > > I'm thinking in rewrite the module, but if in future someone change
> > > > > > something in original module I will need to check my source.
> > > > > > There is another thing, I don't know how things like apr_thread
> > > > > > works, and what functions like switch_sleep(1000000) do and why using \
> > > > > > that. 
> > > > > > Today I make some alterations where the module make a lock, LOKKA,
> > > > > > there is some functions who don't have unlock, and another who only have
> > > > > > unlock, sometimes two unlocks. So I will wait to see what will happen.
> > > > > > 
> > > > > > Now, here it's 3:00 am, and I'm going to sleep, almost 19 hours awake
> > > > > > up, trying to debug this module and another things.
> > > > > > 
> > > > > > 
> > > > > > Maybe you or someone have a time, to chat, or reply some e-mails, or
> > > > > > maybe here, to explain some questions about the source (module)?
> > > > > > 
> > > > > > There's some lines marked with TODO, why?
> > > > > > And there is another version of this module?
> > > > > > Which the maximum number of modems that you already usage?
> > > > > > 
> > > > > > 2015-09-25 7:53 GMT-04:00 Giovanni Maruzzelli <gmaruzz@gmail.com>:
> > > > > > 
> > > > > > > if you found problems, please open a jira issue, with all info to
> > > > > > > replicate the problem, as explained in gsmopen page.
> > > > > > > 
> > > > > > > It would be useful for us developers, and to me personally, being
> > > > > > > the person in charge of gsmopen.
> > > > > > > 
> > > > > > > Thanks in advance,
> > > > > > > 
> > > > > > > -giovanni
> > > > > > > 
> > > > > > > Sincerely,
> > > > > > > 
> > > > > > > Giovanni Maruzzelli
> > > > > > > Cell : +39-347-2665618
> > > > > > > 
> > > > > > > On Fri, Sep 25, 2015 at 1:44 PM, Shabbir abbasi <
> > > > > > > shabbirabbasi92@gmail.com> wrote:
> > > > > > > 
> > > > > > > > mod_gsmopen  needs more development  work, i have tested it
> > > > > > > > sometimes ago and found it is not useable , so now i am using  \
> > > > > > > > asterisk with chan_dongle better then gsmopen without usb HUB
> > > > > > > > 
> > > > > > > > On Fri, Sep 25, 2015 at 11:11 AM, Giovanni Maruzzelli <
> > > > > > > > gmaruzz@gmail.com> wrote:
> > > > > > > > 
> > > > > > > > > This seems to be a kernel problem.
> > > > > > > > > 
> > > > > > > > > To have the most success chances: use a USB hub with power supply
> > > > > > > > > (eg, a USB hub that get electrical power from the wall socket).
> > > > > > > > > Also, use the reference.platform, debian 8 jessie, instead of
> > > > > > > > > freebsd.
> > > > > > > > > 
> > > > > > > > > -goovanni
> > > > > > > > > 
> > > > > > > > > sent from my mobile,
> > > > > > > > > Giovanni Maruzzelli
> > > > > > > > > cell: +39 347 266 56 18
> > > > > > > > > On Sep 25, 2015 7:19 AM, "Luiz Fernando Softov" <
> > > > > > > > > fernando@softov.com.br> wrote:
> > > > > > > > > 
> > > > > > > > > > Hi,
> > > > > > > > > > 
> > > > > > > > > > I'm using freeswitch 1.15 in Freebsd 10.1, with mod_gsmopen
> > > > > > > > > > 
> > > > > > > > > > FreeSWITCH Version 1.5.15b+git~20150407T231134Z~d55c4a053b~64bit
> > > > > > > > > > (git d55c4a0 2015-04-07 23:11:34Z 64bit), whats happen, its the \
> > > > > > > > > > same with another versions like, 1.6, 1.4.19, etc
> > > > > > > > > > 
> > > > > > > > > > After sometime running freeswitch, i have this TTYs.
> > > > > > > > > > 
> > > > > > > > > > crw-------   1 root  wheel      0x8e Sep 24 15:30 ttyU1.3
> > > > > > > > > > crw-------   1 root  wheel      0x8f Sep 24 15:30 ttyU1.3.init
> > > > > > > > > > crw-------   1 root  wheel      0x90 Sep 24 15:30 ttyU1.3.lock
> > > > > > > > > > crw-------   1 root  wheel      0x8e Sep 24 15:30 ttyU2.3
> > > > > > > > > > crw-------   1 root  wheel      0x8f Sep 24 15:30 ttyU2.3.init
> > > > > > > > > > crw-------   1 root  wheel      0x90 Sep 24 15:30 ttyU2.3.lock
> > > > > > > > > > crw-------   1 root  wheel      0x8e Sep 24 15:30 ttyU3.3
> > > > > > > > > > crw-------   1 root  wheel      0x8f Sep 24 15:30 ttyU3.3.init
> > > > > > > > > > crw-------   1 root  wheel      0x90 Sep 24 15:30 ttyU3.3.lock
> > > > > > > > > > crw-------   1 root  wheel      0x76 Sep 25 00:46 ttyU4.0
> > > > > > > > > > crw-------   1 root  wheel      0x77 Sep 24 22:28 ttyU4.0.init
> > > > > > > > > > crw-------   1 root  wheel      0x78 Sep 24 22:28 ttyU4.0.lock
> > > > > > > > > > crw-------   1 root  wheel      0x7c Sep 24 22:28 ttyU4.1
> > > > > > > > > > crw-------   1 root  wheel      0x7d Sep 24 22:28 ttyU4.1.init
> > > > > > > > > > crw-------   1 root  wheel      0x7e Sep 24 22:28 ttyU4.1.lock
> > > > > > > > > > crw-------   1 root  wheel      0x82 Sep 24 22:28 ttyU4.2
> > > > > > > > > > crw-------   1 root  wheel      0x83 Sep 24 22:28 ttyU4.2.init
> > > > > > > > > > crw-------   1 root  wheel      0x84 Sep 24 22:28 ttyU4.2.lock
> > > > > > > > > > crw-------   1 root  wheel      0x8e Sep 24 22:28 ttyU4.3
> > > > > > > > > > crw-------   1 root  wheel      0x8f Sep 24 22:28 ttyU4.3.init
> > > > > > > > > > crw-------   1 root  wheel      0x90 Sep 24 22:28 ttyU4.3.lock
> > > > > > > > > > crw-------   1 root  wheel      0xa8 Sep 25 00:46 ttyU5.0
> > > > > > > > > > crw-------   1 root  wheel      0xa9 Sep 24 22:28 ttyU5.0.init
> > > > > > > > > > crw-------   1 root  wheel      0xaa Sep 24 22:28 ttyU5.0.lock
> > > > > > > > > > crw-------   1 root  wheel      0xae Sep 24 22:28 ttyU5.1
> > > > > > > > > > crw-------   1 root  wheel      0xaf Sep 24 22:28 ttyU5.1.init
> > > > > > > > > > crw-------   1 root  wheel      0xb6 Sep 24 22:28 ttyU5.1.lock
> > > > > > > > > > crw-------   1 root  wheel      0xba Sep 24 22:28 ttyU5.2
> > > > > > > > > > crw-------   1 root  wheel      0xbb Sep 24 22:28 ttyU5.2.init
> > > > > > > > > > crw-------   1 root  wheel      0xbc Sep 24 22:28 ttyU5.2.lock
> > > > > > > > > > crw-------   1 root  wheel      0xc0 Sep 24 22:28 ttyU5.3
> > > > > > > > > > crw-------   1 root  wheel      0xc1 Sep 24 22:28 ttyU5.3.init
> > > > > > > > > > crw-------   1 root  wheel      0xc2 Sep 24 22:28 ttyU5.3.lock
> > > > > > > > > > 
> > > > > > > > > > As you can see, ttyU1.3, ttyU2.3, ttyU3.3 are USB deadlocks
> > > > > > > > > > 
> > > > > > > > > > I try to unload mod_gsmopen, but i receive a message that is in
> > > > > > > > > > use
> > > > > > > > > > so i kill freeswitch, then ttyU1.3, ttyU2.3, ttyU3.3, are free
> > > > > > > > > > and disappear (as well .init and .lock)
> > > > > > > > > > 
> > > > > > > > > > I try to figure out whats happening, with logs, alarms, but i
> > > > > > > > > > can't.
> > > > > > > > > > Someone have the same problem, or know the solution?
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > ps.
> > > > > > > > > > Reading the list, i realize that few members use the module, or
> > > > > > > > > > don't have problems.
> > > > > > > > > > If i am correct, is there any other way to use GSM modems or GSM,
> > > > > > > > > > which is low cost?
> > > > > > > > > > Is there anyone who can guide me in some things about the code or
> > > > > > > > > > tips?
> > > > > > > > > > 
> > > > > > > > > > ps 2.
> > > > > > > > > > sorry about my english
> > > > > > > > > > 
> > > > > > > > > > --
> > > > > > > > > > Luiz Fernando Softov
> > > > > > > > > > http://www.softov.com.br
> > > > > > > > > > fernando@softov.com.br
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > _________________________________________________________________________
> > > > > > > > > >  Professional FreeSWITCH Consulting Services:
> > > > > > > > > > consulting@freeswitch.org
> > > > > > > > > > http://www.freeswitchsolutions.com
> > > > > > > > > > 
> > > > > > > > > > Official FreeSWITCH Sites
> > > > > > > > > > http://www.freeswitch.org
> > > > > > > > > > http://confluence.freeswitch.org
> > > > > > > > > > http://www.cluecon.com
> > > > > > > > > > 
> > > > > > > > > > FreeSWITCH-users mailing list
> > > > > > > > > > FreeSWITCH-users@lists.freeswitch.org
> > > > > > > > > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > > > > > > > > > UNSUBSCRIBE:
> > > > > > > > > > http://lists.freeswitch.org/mailman/options/freeswitch-users
> > > > > > > > > > http://www.freeswitch.org
> > > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > _________________________________________________________________________
> > > > > > > > >  Professional FreeSWITCH Consulting Services:
> > > > > > > > > consulting@freeswitch.org
> > > > > > > > > http://www.freeswitchsolutions.com
> > > > > > > > > 
> > > > > > > > > Official FreeSWITCH Sites
> > > > > > > > > http://www.freeswitch.org
> > > > > > > > > http://confluence.freeswitch.org
> > > > > > > > > http://www.cluecon.com
> > > > > > > > > 
> > > > > > > > > FreeSWITCH-users mailing list
> > > > > > > > > FreeSWITCH-users@lists.freeswitch.org
> > > > > > > > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > > > > > > > > UNSUBSCRIBE:
> > > > > > > > > http://lists.freeswitch.org/mailman/options/freeswitch-users
> > > > > > > > > http://www.freeswitch.org
> > > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > _________________________________________________________________________
> > > > > > > >  Professional FreeSWITCH Consulting Services:
> > > > > > > > consulting@freeswitch.org
> > > > > > > > http://www.freeswitchsolutions.com
> > > > > > > > 
> > > > > > > > Official FreeSWITCH Sites
> > > > > > > > http://www.freeswitch.org
> > > > > > > > http://confluence.freeswitch.org
> > > > > > > > http://www.cluecon.com
> > > > > > > > 
> > > > > > > > FreeSWITCH-users mailing list
> > > > > > > > FreeSWITCH-users@lists.freeswitch.org
> > > > > > > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > > > > > > > UNSUBSCRIBE:
> > > > > > > > http://lists.freeswitch.org/mailman/options/freeswitch-users
> > > > > > > > http://www.freeswitch.org
> > > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > _________________________________________________________________________
> > > > > > >  Professional FreeSWITCH Consulting Services:
> > > > > > > consulting@freeswitch.org
> > > > > > > http://www.freeswitchsolutions.com
> > > > > > > 
> > > > > > > Official FreeSWITCH Sites
> > > > > > > http://www.freeswitch.org
> > > > > > > http://confluence.freeswitch.org
> > > > > > > http://www.cluecon.com
> > > > > > > 
> > > > > > > FreeSWITCH-users mailing list
> > > > > > > FreeSWITCH-users@lists.freeswitch.org
> > > > > > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > > > > > > UNSUBSCRIBE:
> > > > > > > http://lists.freeswitch.org/mailman/options/freeswitch-users
> > > > > > > http://www.freeswitch.org
> > > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > --
> > > > > > Luiz Fernando Softov
> > > > > > http://www.softov.com.br
> > > > > > fernando@softov.com.br
> > > > > > 
> > > > > > 
> > > > > > _________________________________________________________________________
> > > > > > Professional FreeSWITCH Consulting Services:
> > > > > > consulting@freeswitch.org
> > > > > > http://www.freeswitchsolutions.com
> > > > > > 
> > > > > > Official FreeSWITCH Sites
> > > > > > http://www.freeswitch.org
> > > > > > http://confluence.freeswitch.org
> > > > > > http://www.cluecon.com
> > > > > > 
> > > > > > FreeSWITCH-users mailing list
> > > > > > FreeSWITCH-users@lists.freeswitch.org
> > > > > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > > > > > UNSUBSCRIBE:
> > > > > > http://lists.freeswitch.org/mailman/options/freeswitch-users
> > > > > > http://www.freeswitch.org
> > > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > _________________________________________________________________________
> > > > > Professional FreeSWITCH Consulting Services:
> > > > > consulting@freeswitch.org
> > > > > http://www.freeswitchsolutions.com
> > > > > 
> > > > > Official FreeSWITCH Sites
> > > > > http://www.freeswitch.org
> > > > > http://confluence.freeswitch.org
> > > > > http://www.cluecon.com
> > > > > 
> > > > > FreeSWITCH-users mailing list
> > > > > FreeSWITCH-users@lists.freeswitch.org
> > > > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > > > > UNSUBSCRIBE:
> > > > > http://lists.freeswitch.org/mailman/options/freeswitch-users
> > > > > http://www.freeswitch.org
> > > > > 
> > > > 
> > > > 
> > > > 
> > > > --
> > > > Luiz Fernando Softov
> > > > http://www.softov.com.br
> > > > fernando@softov.com.br
> > > > 
> > > 
> > > 
> > > 
> > > --
> > > Luiz Fernando Softov
> > > http://www.softov.com.br
> > > fernando@softov.com.br
> > > 
> > > _________________________________________________________________________
> > > Professional FreeSWITCH Consulting Services:
> > > consulting@freeswitch.org
> > > http://www.freeswitchsolutions.com
> > > 
> > > Official FreeSWITCH Sites
> > > http://www.freeswitch.org
> > > http://confluence.freeswitch.org
> > > http://www.cluecon.com
> > > 
> > > FreeSWITCH-users mailing list
> > > FreeSWITCH-users@lists.freeswitch.org
> > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> > > http://www.freeswitch.org
> > > 
> > 
> > 
> > 
> > --
> > Sincerely,
> > 
> > Giovanni Maruzzelli
> > Cell : +39-347-2665618
> > 
> 
> 
> 
> --
> Sincerely,
> 
> Giovanni Maruzzelli
> Cell : +39-347-2665618
> 
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting@freeswitch.org
> http://www.freeswitchsolutions.com
> 
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://confluence.freeswitch.org
> http://www.cluecon.com
> 
> FreeSWITCH-users mailing list
> FreeSWITCH-users@lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
> 



-- 
Luiz Fernando Softov
http://www.softov.com.br
fernando@softov.com.br


[Attachment #5 (text/html)]

<div dir="ltr">Hi, i sent a e-mail to you, with the diff, files and give you access \
to web interface of the system.<br><br>I will wait you to read, confirm and reply my \
e-mail.<br><br>Thanks a lot for the help.</div><div class="gmail_extra"><br><div \
class="gmail_quote">2015-09-26 15:28 GMT-04:00 Giovanni Maruzzelli <span \
dir="ltr">&lt;<a href="mailto:gmaruzz@gmail.com" \
target="_blank">gmaruzz@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" \
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div \
dir="ltr"><div>As per chat, I&#39;m &quot;gmaruzz&quot; in both FreeSWITCH&#39;s \
hipchat and in IRC #freeswitch channel at <a href="http://irc.freenode.net" \
target="_blank">irc.freenode.net</a><span class="HOEnZb"><font \
color="#888888"><br><br></font></span></div><span class="HOEnZb"><font \
color="#888888">-giovanni<br></font></span></div><div class="HOEnZb"><div \
class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Sep 26, 2015 \
at 9:25 PM, Giovanni Maruzzelli <span dir="ltr">&lt;<a \
href="mailto:gmaruzz@gmail.com" target="_blank">gmaruzz@gmail.com</a>&gt;</span> \
wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px \
#ccc solid;padding-left:1ex"><div dir="ltr"><span>On Fri, Sep 25, 2015 at 11:30 PM, \
Luiz Fernando Softov <span dir="ltr">&lt;<a href="mailto:fernando@softov.com.br" \
target="_blank">fernando@softov.com.br</a>&gt;</span> wrote:<br></span><div \
class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" \
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div \
dir="ltr">Now, i make some changes, and until now it&#39;s running fine<br><br>I \
think the problem was when you declare interface as dead, like line 674 of  \
gsmopen_protocol.cpp<br><div><br></div><div><a \
href="https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse/src/mod/endpoints/mod_gsmopen/gsmopen_protocol.cpp" \
target="_blank">https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse/src/m \
od/endpoints/mod_gsmopen/gsmopen_protocol.cpp</a><br><br><div>alarm_event(tech_pvt, \
ALARM_FAILED_INTERFACE, &quot;gsmopen_serial_monitor failed, declaring interface \
dead&quot;);</div><div>tech_pvt-&gt;active = 0;</div><div>-&gt;&gt;&gt;&gt; \
tech_pvt-&gt;name[0] = &#39;\0&#39;;<br><br>You make a \0 in interface \
name<br><br>So, when someone call  remove_interface() in \
mod_gsmopen.cpp</div><div><br><a \
href="https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse/src/mod/endpoints/mod_gsmopen/mod_gsmopen.cpp" \
target="_blank">https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse/src/mod/endpoints/mod_gsmopen/mod_gsmopen.cpp</a><br><br>To \
grab the tech_pvt, the function check for strlen or compare \
GSMOPEN_INTERFACES[interface_id].name (line 322 and 329)<br><br>Then, we will not \
found interface (tech_pvt), because &quot;name&quot; is nothing</div><div><br>  \
</div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 \
.8ex;border-left:1px #ccc solid;padding-left:1ex"><div \
dir="ltr"><div><div>continuing, in line 336 it&#39;s check if there is a  \
tech_pvt<br><br><div>if (!tech_pvt) {</div><div><span style="white-space:pre-wrap">  \
D</span>EBUGA_GSMOPEN(&quot;interface &#39;%s&#39; does not exist\n&quot;, \
GSMOPEN_P_LOG, the_interface);</div><div>   goto end;</div><div>}<br><br>This check \
will jump the Close in line 385, causing a deadlock opened fd.<br>res = \
tech_pvt-&gt;serialPort_serial_control-&gt;Close();<br></div></div><div><br>So i \
comment every line when you set tech_pvt-&gt;name[0] = &#39;\0&#39;;<br><br>It&#39;s \
correct? Since when interface failed, and it&#39;s declared as died, the serial \
isn&#39;t closed, just marked as died, and the tty still opened causing a deadlock, \
if no one close this.<br><br></div></div></div></blockquote><div><br></div></span><div>your \
reasoning seems sound, is the system still running ok?<br><br><br></div><div>Have you \
changed anything else?<br><br></div><div>Can you send me (to my mail, as an attach) a \
git diff? Or open a jira attaching that diff?<br><br></div><div>Btw, yes, I&#39;m \
interested in understanding better how your system works (daemon, attach-detach, and \
all).<br><br></div><div>Also, big thanks for taking the time to look into the source \
code!!!<span><font color="#888888"><br><br></font></span></div><span><font \
color="#888888"><div>-giovanni<br><br></div></font></span><div><div><div><br><br>  \
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div \
dir="ltr"><div><div><br><br><br></div></div></div><div><div><div \
class="gmail_extra"><br><div class="gmail_quote">2015-09-25 14:10 GMT-04:00 Luiz \
Fernando Softov <span dir="ltr">&lt;<a href="mailto:fernando@softov.com.br" \
target="_blank">fernando@softov.com.br</a>&gt;</span>:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div dir="ltr">I make a daemon, witch manage USB using kqueue \
and other things, so, every time i plug or unplug a modem, i make a event, like \
ARRIVE and LEAVE.<br><br>This daemon have a list of modems, correlate with ttys ids - \
U3G (U0.0, U0.1, U0.2) and UMODEM (U0 U1 U2)<br><br>So, when a modem ARRIVE, and \
it&#39;s &quot;attached&quot; (configured), i call a &quot;gsm reload&quot;.<br>When \
a modem LEAVE, i call a gsm remove interface_x.<br><br>Using mod_xml_curl, i have \
dynamic config.<br><br>I use events, like gsmopen_dump list, to manage and controll \
interfaces, like when user &quot;detach&quot; a modem.<br><br>If you want, send me a \
e-mail, i will give access to my system and you can see what i&#39;m talking \
about.<br><br><br>Anyway, i found things like in function<br><br>int \
gsmopen_serial_write_AT_noack(private_t *tech_pvt, const char *data)<br><br>// You \
make<br>LOKKA(tech_pvt-&gt;controldev_lock);<br><br>Then call  \
gsmopen_serial_write_AT(tech_pvt, data), and inside  gsmopen_serial_write_AT, when \
something is wrong, you make  UNLOCKA(tech_pvt-&gt;controldev_lock); and return \
-1<br><br>But, you check  if (gsmopen_serial_write_AT(tech_pvt, data) != (int) \
strlen(data)) {<br><br>Then, you make again  \
UNLOCKA(tech_pvt-&gt;controldev_lock);<br><br>Why make two times  \
UNLOCKA(tech_pvt-&gt;controldev_lock); ?<br><br>It&#39;s \
like<br>LOKKA(tech_pvt-&gt;controldev_lock);<br>UNLOCKA(tech_pvt-&gt;controldev_lock);<br>UNLOCKA(tech_pvt-&gt;controldev_lock);<br><br><br>Another \
is in<br>int gsmopen_serial_read_AT(private_t *tech_pvt, int look_for_ack, int \
timeout_usec, int timeout_sec, const char *expected_string, int expect_crlf)<br>You \
make a  LOKKA(tech_pvt-&gt;controldev_lock);, but there is some returns (inside try \
catch), without  UNLOCKA.<br><br>Sorry if i make some mistakes in my explanation, but \
i just want to undestand how this funcions works.<br><br>I disagree with \
&quot;Shaabir&quot; about this module is not  <span style="font-size:12.8px">useable. \
I just think this need some changes to work fine.</span><br>I already test this \
module with 40 modems for 7 days, and it&#39;s work fine, until i grab a deadlock in \
USB.<br><br>Giovanni, if you have time to chat with me, i will be \
grateful.<br><br><br><br><br></div><div><div><div class="gmail_extra"><br><div \
class="gmail_quote">2015-09-25 12:41 GMT-04:00 Giovanni Maruzzelli <span \
dir="ltr">&lt;<a href="mailto:gmaruzz@gmail.com" \
target="_blank">gmaruzz@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" \
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div \
dir="ltr"><div><div><div>for plugging and unplugging modems, that&#39;s a very \
difficult thing to manage, this is the best I can come out with (and probably does \
not work in freebsd):<br><br><a \
href="http://wiki.freeswitch.org/wiki/GSMopen#IMEI_and_IMSI_automatic_device_discovery_.28only_on_Linux.29_2" \
target="_blank">http://wiki.freeswitch.org/wiki/GSMopen#IMEI_and_IMSI_automatic_device_discovery_.28only_on_Linux.29_2</a><br><br></div>you&#39;re \
welcome to find a similar mechanism, and file a jira with a pull request, so it will \
be inserted in manline.<br><br></div>If your modifications only apply to freebsd, \
please use #ifdefs, so it still continue to compile and work in Linux.<span><font \
color="#888888"><br><br></font></span></div><span><font \
color="#888888">-giovanni<br><br></font></span></div><div \
class="gmail_extra"><span><br clear="all"><div><div>Sincerely,<br><br>Giovanni \
Maruzzelli<br>Cell : <a href="tel:%2B39-347-2665618" value="+393472665618" \
target="_blank">+39-347-2665618</a><br></div></div> <br></span><div><div><div \
class="gmail_quote">On Fri, Sep 25, 2015 at 6:24 PM, Luiz Fernando Softov <span \
dir="ltr">&lt;<a href="mailto:fernando@softov.com.br" \
target="_blank">fernando@softov.com.br</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div dir="ltr"><span style="font-size:12.8px">I&#39;m using a \
USB with power supply.</span><div style="font-size:12.8px"><br></div><div \
style="font-size:12.8px">But sometimes it&#39;s just happen. Sometimes user remove \
and plug modem again.</div><div style="font-size:12.8px"><br></div><span \
style="font-size:12.8px">I can&#39;t use Debian, because our system depends of \
FreeBSD, and we have a lot of source (daemons) running, based, on that platform. And \
we use kqueue, I think Debian don&#39;t have kqueue, it&#39;s like epool, but better, \
much better.</span><div style="font-size:12.8px"><br></div><div \
style="font-size:12.8px">Anyway, I don&#39;t That it&#39;s  a kernel problem, \
because, since I have another daemon, attached in ttyx.0 (mod_gsmopen attach to \
ttyx.3), and when modem power off or  &quot;reset&quot;, only ttyx.3 still \
locked.</div><div style="font-size:12.8px"><br></div><div \
style="font-size:12.8px">I&#39;m trying to read the source to figure what&#39;s \
happening, but it&#39;s hard to read, not because the source is difficult, but \
because isn&#39;t organized.</div><div style="font-size:12.8px"><br></div><div \
style="font-size:12.8px">I&#39;m thinking in rewrite the module, but if in future \
someone change something in original module I will  need to check my \
source.</div><div style="font-size:12.8px"><div>There is another thing,  <span \
style="font-size:small;background-color:rgba(255,255,255,0)">I don&#39;t know how \
things like  apr_thread works, and what  functions like switch_sleep(1000000) do  and \
why using that.</span></div><div><br></div><div>Today I make some alterations where \
the module make a  lock,  LOKKA, there is some functions who don&#39;t have unlock, \
and another who only have unlock, sometimes two unlocks. So I will wait to see what \
will happen.</div><div><br></div><div>Now, here it&#39;s 3:00 am, and I&#39;m going \
to sleep, almost 19 hours awake up, trying to debug this module and another \
things.</div><div><br></div><div><br></div>Maybe you or someone  have a time, to \
chat, or reply some e-mails, or maybe here, to explain some questions about the \
source (module)?</div><div style="font-size:12.8px"><br></div><div \
style="font-size:12.8px">There&#39;s some lines marked with TODO, why?<br><div>And \
there is another version of this module?</div><div><font size="2"><span \
style="background-color:rgba(255,255,255,0)">Which the maximum number of modems that  \
you already usage?</span></font></div></div></div><div><div><div \
class="gmail_extra"><br><div class="gmail_quote">2015-09-25 7:53 GMT-04:00 Giovanni \
Maruzzelli <span dir="ltr">&lt;<a href="mailto:gmaruzz@gmail.com" \
target="_blank">gmaruzz@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" \
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div \
dir="ltr"><div><div><div>if you found problems, please open a jira issue, with all \
info to replicate the problem, as explained in gsmopen page.<br><br></div>It would be \
useful for us developers, and to me personally, being the person in charge of \
gsmopen.<br><br></div>Thanks in advance,<br><br></div>-giovanni<br></div><div \
class="gmail_extra"><br clear="all"><div><div>Sincerely,<br><br>Giovanni \
Maruzzelli<br>Cell : <a href="tel:%2B39-347-2665618" value="+393472665618" \
target="_blank">+39-347-2665618</a><br></div></div><div><div> <br><div \
class="gmail_quote">On Fri, Sep 25, 2015 at 1:44 PM, Shabbir abbasi <span \
dir="ltr">&lt;<a href="mailto:shabbirabbasi92@gmail.com" \
target="_blank">shabbirabbasi92@gmail.com</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div dir="ltr">mod_gsmopen   needs more development   work, i \
have tested it sometimes ago and found it is not useable , so now i am using   \
asterisk with chan_dongle better then gsmopen without usb HUB<br></div><div><div><div \
class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 25, 2015 at 11:11 AM, \
Giovanni Maruzzelli <span dir="ltr">&lt;<a href="mailto:gmaruzz@gmail.com" \
target="_blank">gmaruzz@gmail.com</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><p dir="ltr">This seems to be a kernel problem.</p> <p \
dir="ltr">To have the most success chances: use a USB hub with power supply (eg, a \
USB hub that get electrical power from the wall socket).<br> Also, use the \
reference.platform, debian 8 jessie, instead of freebsd.</p> <p \
dir="ltr">-goovanni</p> <p dir="ltr">sent from my mobile,<br>
Giovanni Maruzzelli<br>
cell: +39 347 266 56 18</p>
<div class="gmail_quote"><div><div>On Sep 25, 2015 7:19 AM, &quot;Luiz Fernando \
Softov&quot; &lt;<a href="mailto:fernando@softov.com.br" \
target="_blank">fernando@softov.com.br</a>&gt; wrote:<br \
type="attribution"></div></div><blockquote class="gmail_quote" style="margin:0 0 0 \
.8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><font \
style="font-size:12.8px" face="monospace, monospace">Hi,  <br><br>I&#39;m using \
freeswitch 1.15 in Freebsd 10.1, with mod_gsmopen<br><br>FreeSWITCH Version \
1.5.15b+git~20150407T231134Z~d55c4a053b~64bit (git d55c4a0 2015-04-07 23:11:34Z \
64bit), whats happen, its the same with another versions like, 1.6, 1.4.19, \
etc<br><br>After sometime running freeswitch, i have this TTYs.<br></font><div \
style="font-size:12.8px"><font face="monospace, monospace"><br></font></div><div \
style="font-size:12.8px"><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0x8e Sep 24 15:30 ttyU1.3</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0x8f Sep 24 15:30 \
ttyU1.3.init</font></div><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0x90 Sep 24 15:30 ttyU1.3.lock</font></div></div><div \
style="font-size:12.8px"><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0x8e Sep 24 15:30  ttyU2.3</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0x8f Sep 24 15:30  \
ttyU2.3.init</font></div><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0x90 Sep 24 15:30  ttyU2.3.lock</font></div></div><div \
style="font-size:12.8px"><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0x8e Sep 24 15:30  ttyU3.3</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0x8f Sep 24 15:30  \
ttyU3.3.init</font></div><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0x90 Sep 24 15:30 ttyU3.3.lock</font></div></div><div \
style="font-size:12.8px"><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0x76 Sep 25 00:46 ttyU4.0</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0x77 Sep 24 22:28 \
ttyU4.0.init</font></div><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0x78 Sep 24 22:28 ttyU4.0.lock</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0x7c Sep 24 22:28 \
ttyU4.1</font></div><div><font face="monospace, monospace">crw-------    1 root   \
wheel         0x7d Sep 24 22:28 ttyU4.1.init</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0x7e Sep 24 22:28 \
ttyU4.1.lock</font></div><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0x82 Sep 24 22:28 ttyU4.2</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0x83 Sep 24 22:28 \
ttyU4.2.init</font></div><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0x84 Sep 24 22:28 ttyU4.2.lock</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0x8e Sep 24 22:28 \
ttyU4.3</font></div><div><font face="monospace, monospace">crw-------    1 root   \
wheel         0x8f Sep 24 22:28 ttyU4.3.init</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0x90 Sep 24 22:28 \
ttyU4.3.lock</font></div><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0xa8 Sep 25 00:46 ttyU5.0</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0xa9 Sep 24 22:28 \
ttyU5.0.init</font></div><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0xaa Sep 24 22:28 ttyU5.0.lock</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0xae Sep 24 22:28 \
ttyU5.1</font></div><div><font face="monospace, monospace">crw-------    1 root   \
wheel         0xaf Sep 24 22:28 ttyU5.1.init</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0xb6 Sep 24 22:28 \
ttyU5.1.lock</font></div><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0xba Sep 24 22:28 ttyU5.2</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0xbb Sep 24 22:28 \
ttyU5.2.init</font></div><div><font face="monospace, monospace">crw-------    1 root  \
wheel         0xbc Sep 24 22:28 ttyU5.2.lock</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0xc0 Sep 24 22:28 \
ttyU5.3</font></div><div><font face="monospace, monospace">crw-------    1 root   \
wheel         0xc1 Sep 24 22:28 ttyU5.3.init</font></div><div><font face="monospace, \
monospace">crw-------    1 root   wheel         0xc2 Sep 24 22:28 \
ttyU5.3.lock</font></div><div><font face="monospace, monospace"><br>As you can see,  \
ttyU1.3,  ttyU2.3,  ttyU3.3 are USB deadlocks<br><br>I try to unload mod_gsmopen, but \
i receive a message that is in use<br>so i kill freeswitch, then  ttyU1.3,  ttyU2.3,  \
ttyU3.3, are free and disappear (as well .init and .lock)<br><br>I try to figure out \
whats happening, with logs, alarms, but i can&#39;t.<br>Someone have the same \
problem, or know the solution?<br><br><br>ps.<br>Reading the list, i realize that few \
members use the module, or don&#39;t have problems.<br>If i am correct, is there any \
other way to use GSM modems or GSM, which is low cost?<br>Is there anyone who can \
guide me in some things about the code or tips?<br><br>ps 2.<br>sorry about my \
english</font></div></div><div><br></div>-- <br><div><div dir="ltr">Luiz Fernando \
Softov<br><a href="http://www.softov.com.br/" \
target="_blank">http://www.softov.com.br</a><br><a \
href="mailto:fernando@softov.com.br" \
target="_blank">fernando@softov.com.br</a><br></div></div> </div>
<br></div></div>_________________________________________________________________________<br>
 Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" \
target="_blank">consulting@freeswitch.org</a><br> <a \
href="http://www.freeswitchsolutions.com" rel="noreferrer" \
target="_blank">http://www.freeswitchsolutions.com</a><br> <br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br> <a \
href="http://confluence.freeswitch.org" rel="noreferrer" \
target="_blank">http://confluence.freeswitch.org</a><br> <a \
href="http://www.cluecon.com" rel="noreferrer" \
target="_blank">http://www.cluecon.com</a><br> <br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" \
target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br> <a \
href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" \
target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br> \
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" \
rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
 <a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br></blockquote></div> \
<br>_________________________________________________________________________<br> \
Professional FreeSWITCH Consulting Services:<br> <a \
href="mailto:consulting@freeswitch.org" \
target="_blank">consulting@freeswitch.org</a><br> <a \
href="http://www.freeswitchsolutions.com" rel="noreferrer" \
target="_blank">http://www.freeswitchsolutions.com</a><br> <br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br> <a \
href="http://confluence.freeswitch.org" rel="noreferrer" \
target="_blank">http://confluence.freeswitch.org</a><br> <a \
href="http://www.cluecon.com" rel="noreferrer" \
target="_blank">http://www.cluecon.com</a><br> <br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" \
target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br> <a \
href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" \
target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br> \
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" \
rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
 <a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br></div> \
</div></div><br>_________________________________________________________________________<br>
 Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" \
target="_blank">consulting@freeswitch.org</a><br> <a \
href="http://www.freeswitchsolutions.com" rel="noreferrer" \
target="_blank">http://www.freeswitchsolutions.com</a><br> <br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br> <a \
href="http://confluence.freeswitch.org" rel="noreferrer" \
target="_blank">http://confluence.freeswitch.org</a><br> <a \
href="http://www.cluecon.com" rel="noreferrer" \
target="_blank">http://www.cluecon.com</a><br> <br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" \
target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br> <a \
href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" \
target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br> \
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" \
rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
 <a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br></div></div></div>
 <br>_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" \
target="_blank">consulting@freeswitch.org</a><br> <a \
href="http://www.freeswitchsolutions.com" rel="noreferrer" \
target="_blank">http://www.freeswitchsolutions.com</a><br> <br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br> <a \
href="http://confluence.freeswitch.org" rel="noreferrer" \
target="_blank">http://confluence.freeswitch.org</a><br> <a \
href="http://www.cluecon.com" rel="noreferrer" \
target="_blank">http://www.cluecon.com</a><br> <br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" \
target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br> <a \
href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" \
target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br> \
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" \
rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
 <a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br><br \
clear="all"><div><br></div>-- <br><div><div dir="ltr">Luiz Fernando Softov<br><a \
href="http://www.softov.com.br/" target="_blank">http://www.softov.com.br</a><br><a \
href="mailto:fernando@softov.com.br" \
target="_blank">fernando@softov.com.br</a><br></div></div> </div>
</div></div><br>_________________________________________________________________________<br>
 Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" \
target="_blank">consulting@freeswitch.org</a><br> <a \
href="http://www.freeswitchsolutions.com" rel="noreferrer" \
target="_blank">http://www.freeswitchsolutions.com</a><br> <br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br> <a \
href="http://confluence.freeswitch.org" rel="noreferrer" \
target="_blank">http://confluence.freeswitch.org</a><br> <a \
href="http://www.cluecon.com" rel="noreferrer" \
target="_blank">http://www.cluecon.com</a><br> <br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" \
target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br> <a \
href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" \
target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br> \
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" \
rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
 <a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br></div></div></div>
 <br>_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" \
target="_blank">consulting@freeswitch.org</a><br> <a \
href="http://www.freeswitchsolutions.com" rel="noreferrer" \
target="_blank">http://www.freeswitchsolutions.com</a><br> <br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br> <a \
href="http://confluence.freeswitch.org" rel="noreferrer" \
target="_blank">http://confluence.freeswitch.org</a><br> <a \
href="http://www.cluecon.com" rel="noreferrer" \
target="_blank">http://www.cluecon.com</a><br> <br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" \
target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br> <a \
href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" \
target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br> \
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" \
rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
 <a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br><br \
clear="all"><div><br></div>-- <br><div><div dir="ltr">Luiz Fernando Softov<br><a \
href="http://www.softov.com.br/" target="_blank">http://www.softov.com.br</a><br><a \
href="mailto:fernando@softov.com.br" \
target="_blank">fernando@softov.com.br</a><br></div></div> </div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div><div \
dir="ltr">Luiz Fernando Softov<br><a href="http://www.softov.com.br/" \
target="_blank">http://www.softov.com.br</a><br><a \
href="mailto:fernando@softov.com.br" \
target="_blank">fernando@softov.com.br</a><br></div></div> </div>
</div></div><br>_________________________________________________________________________<br>
 Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" \
target="_blank">consulting@freeswitch.org</a><br> <a \
href="http://www.freeswitchsolutions.com" rel="noreferrer" \
target="_blank">http://www.freeswitchsolutions.com</a><br> <br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br> <a \
href="http://confluence.freeswitch.org" rel="noreferrer" \
target="_blank">http://confluence.freeswitch.org</a><br> <a \
href="http://www.cluecon.com" rel="noreferrer" \
target="_blank">http://www.cluecon.com</a><br> <br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" \
target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br> <a \
href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" \
target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br> \
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" \
rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
 <a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br></blockquote></div></div></div><div><div><br><br \
clear="all"><br>-- <br><div>Sincerely,<br><br>Giovanni Maruzzelli<br>Cell : <a \
href="tel:%2B39-347-2665618" value="+393472665618" \
target="_blank">+39-347-2665618</a><br></div> </div></div></div></div>
</blockquote></div><br><br clear="all"><br>-- <br><div>Sincerely,<br><br>Giovanni \
Maruzzelli<br>Cell : <a href="tel:%2B39-347-2665618" value="+393472665618" \
target="_blank">+39-347-2665618</a><br></div> </div>
</div></div><br>_________________________________________________________________________<br>
 Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" \
target="_blank">http://www.freeswitchsolutions.com</a><br> <br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br> <a \
href="http://confluence.freeswitch.org" rel="noreferrer" \
target="_blank">http://confluence.freeswitch.org</a><br> <a \
href="http://www.cluecon.com" rel="noreferrer" \
target="_blank">http://www.cluecon.com</a><br> <br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
 <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" \
rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
 UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" \
rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
 <a href="http://www.freeswitch.org" rel="noreferrer" \
target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br><br \
clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Luiz \
Fernando Softov<br><a href="http://www.softov.com.br/" \
target="_blank">http://www.softov.com.br</a><br><a \
href="mailto:fernando@softov.com.br" \
target="_blank">fernando@softov.com.br</a><br></div></div> </div>



_________________________________________________________________________
Professional FreeSWITCH Consulting Services: 
consulting@freeswitch.org
http://www.freeswitchsolutions.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://confluence.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic