Why exactly do you want to restart the whole core? FS is modular enough so you can restart it per module. Math On 2-Jul-09, at 10:47 AM, Tamas wrote:
Hi,
I started with switch.c and saw execv lines. This works for sure. What I don't know is that why the way I'm doing does not work, what have I missed. My original problem is that when I tear down FS core started in a thread, there is no issue, however when I tear down the thread FS core was running in, I'm getting segfault which is similar to what I was able to reproduce with this fshost example (when I don't have FS initiated in that thread, thread tearing works fine).
... 2009-07-02 16:41:08.777480 [CONSOLE] switch_core_sqldb.c:593 Waiting for unfinished SQL transactions 2009-07-02 16:41:08.777576 [NOTICE] switch_core_sqldb.c:199 SQL thread ending 2009-07-02 16:41:08.787766 [CONSOLE] switch_scheduler.c:305 Stopping Task Thread 2009-07-02 16:41:09.190129 [DEBUG] switch_scheduler.c:138 Deleting task 1 heartbeat (core) 2009-07-02 16:41:09.253047 [NOTICE] switch_scheduler.c:176 Task thread ending 2009-07-02 16:41:09.288623 [CONSOLE] switch_core.c:1656 Closing Event Engine. 2009-07-02 16:41:09.288746 [CONSOLE] switch_event.c:468 Stopping event queue 0 2009-07-02 16:41:09.288801 [CONSOLE] switch_event.c:468 Stopping event queue 1 2009-07-02 16:41:09.288844 [CONSOLE] switch_event.c:468 Stopping event queue 2 2009-07-02 16:41:09.288888 [CONSOLE] switch_event.c:325 Event Thread 1 Ended. 2009-07-02 16:41:09.288884 [CONSOLE] switch_event.c:474 Stopping dispatch queue 0 2009-07-02 16:41:09.289079 [CONSOLE] switch_event.c:263 Dispatch Thread 0 Ended. 2009-07-02 16:41:09.289312 [CONSOLE] switch_event.c:325 Event Thread 2 Ended. 2009-07-02 16:41:09.290423 [CONSOLE] switch_event.c:492 Stopping dispatch thread 0 2009-07-02 16:41:09.290471 [CONSOLE] switch_event.c:506 Stopping queue thread 0 2009-07-02 16:41:09.288922 [CONSOLE] switch_event.c:325 Event Thread 0 Ended. 2009-07-02 16:41:09.345453 [CONSOLE] switch_event.c:506 Stopping queue thread 1 2009-07-02 16:41:09.345510 [CONSOLE] switch_event.c:506 Stopping queue thread 2 2009-07-02 16:41:09.345561 [CONSOLE] switch_core.c:1659 Finalizing Shutdown. 2009-07-02 16:41:09.345697 [CONSOLE] switch_log.c:255 Logger Ended. 2009-07-02 16:41:09.347192 [CONSOLE] switch_core_memory.c:567 Stopping memory pool queue. Initializing globals... Initializing core... 2009-07-02 16:41:09.448524 [INFO] switch_event.c:565 Activate Eventing Engine. Szegmens hiba (core dumped)
Core was generated by `./fshost'. Program terminated with signal 11, Segmentation fault. #0 0x00007fce6f8fca7f in apr_queue_trypush (queue=0x7fce6d54c5a8, data=0x17cf600) at misc/apr_queue.c:215 215 if (queue->terminated) { (gdb) bt #0 0x00007fce6f8fca7f in apr_queue_trypush (queue=0x7fce6d54c5a8, data=0x17cf600) at misc/apr_queue.c:215 #1 0x00007fce6f86c64a in switch_queue_trypush (queue=0x7fce6d54c5a8, data=0x17cf600) at src/switch_apr.c:931 #2 0x00007fce6f8a3ab8 in switch_event_thread (thread=0x1bd5028, obj=0x17bdb38) at src/switch_event.c:305 #3 0x00007fce6f910c01 in dummy_worker (opaque=0x1bd5028) at threadproc/unix/thread.c:138 #4 0x00007fce6ec5d3ba in start_thread () from /lib/libpthread.so.0 #5 0x00007fce6f59bfcd in clone () from /lib/libc.so.6 #6 0x0000000000000000 in ?? () (gdb) bt full #0 0x00007fce6f8fca7f in apr_queue_trypush (queue=0x7fce6d54c5a8, data=0x17cf600) at misc/apr_queue.c:215 rv = 0 #1 0x00007fce6f86c64a in switch_queue_trypush (queue=0x7fce6d54c5a8, data=0x17cf600) at src/switch_apr.c:931 s = 0 #2 0x00007fce6f8a3ab8 in switch_event_thread (thread=0x1bd5028, obj=0x17bdb38) at src/switch_event.c:305 pop = 0x17cf600 event = 0x17cf600 queue = 0x17bdb38 index = 0 my_id = 0 __func__ = "switch_event_thread" #3 0x00007fce6f910c01 in dummy_worker (opaque=0x1bd5028) at threadproc/unix/thread.c:138 thread = 0x1bd5028 #4 0x00007fce6ec5d3ba in start_thread () from /lib/libpthread.so.0 No symbol table info available. #5 0x00007fce6f59bfcd in clone () from /lib/libc.so.6 No symbol table info available. #6 0x0000000000000000 in ?? () No symbol table info available. (gdb)
New info: for the shutdown issue (a different one) I've found that when I don't load mod_portaudio, there is no segfault on shutdown, it tears down everything cleanly. For the fshost issue the same did not have any effect. Is there any know practice how to debug such thing?
I'll keep working on these issues...
Regards, Tamas
Anthony Minessale írta:
look in switch.c
we do it when you say "fsctl shutdown restart" and it works fine over and over.
On Wed, Jul 1, 2009 at 5:52 PM, Tamas <jalsot@gmail.com <mailto:jalsot@gmail.com>> wrote:
Hello,
I'm trying to embed FS in a C application where I should have to restart the whole stuff (core) in one process/thread, however it crashes. I assume, something is not freed up before the new startup. I've used mrene's fshost example to reproduce the issue:
Index: contrib/mrene/fshost/main.c
=================================================================== --- contrib/mrene/fshost/main.c (revision 14092) +++ contrib/mrene/fshost/main.c (working copy) -82,7 +82,34 @@
ret = system(buf); } + + + /* Here I start my 2nd start */ + + /* Initialize libs & globals */ + printf("Initializing globals...\n"); + switch_core_setrlimits(); + switch_core_set_globals();
+ /* If you need to override configuration directories, you need to change them in the SWITCH_GLOBAL_dirs global structure */ + printf("Initializing core...\n"); + /* Initialize the core and load modules, that will startup FS completely */ + if (switch_core_init_and_modload(flags, console, &err) != SWITCH_STATUS_SUCCESS) { + fprintf(stderr, "Failed to initialize FreeSWITCH's core: %s\n", err); + return 1; + } + + printf("Everything OK, Entering runtime loop.\n"); + + fflush(stdout); + + /* Go into the runtime loop. If the argument is true, this basically sets runtime.running = 1 and loops while that is set + * If its false, it initializes the libedit for the console, then does the same thing + */ + switch_core_runtime_loop(!console); + + /* When the runtime loop exits, its time to shutdown */ + destroy_status = switch_core_destroy(); return ret; }
-95,4 +122,4 @@ * End: * For VIM: * vim:set softtabstop=4 shiftwidth=4 tabstop=4: - */ \ No newline at end of file + */
Here are some gdb backtraces:
(gdb) bt #0 0x00007fb418c94a7f in apr_queue_trypush (queue=0x7fb4168e45a8, data=0x12b4b60) at misc/apr_queue.c:215 #1 0x00007fb418c0464a in switch_queue_trypush (queue=0x7fb4168e45a8, data=0x12b4b60) at src/switch_apr.c:931 #2 0x00007fb418c3bab8 in switch_event_thread (thread=0x1663a98, obj=0x12b8398) at src/switch_event.c:305 #3 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663a98) at threadproc/unix/thread.c:138 #4 0x00007fb417ff53ba in start_thread () from /lib/ libpthread.so.0 #5 0x00007fb418933fcd in clone () from /lib/libc.so.6 #6 0x0000000000000000 in ?? () (gdb) bt full #0 0x00007fb418c94a7f in apr_queue_trypush (queue=0x7fb4168e45a8, data=0x12b4b60) at misc/apr_queue.c:215 rv = 0 #1 0x00007fb418c0464a in switch_queue_trypush (queue=0x7fb4168e45a8, data=0x12b4b60) at src/switch_apr.c:931 s = 0 #2 0x00007fb418c3bab8 in switch_event_thread (thread=0x1663a98, obj=0x12b8398) at src/switch_event.c:305 pop = 0x12b4b60 event = 0x12b4b60 queue = 0x12b8398 index = 0 my_id = 0 __func__ = "switch_event_thread" #3 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663a98) at threadproc/unix/thread.c:138 thread = 0x1663a98 #4 0x00007fb417ff53ba in start_thread () from /lib/ libpthread.so.0 No symbol table info available. #5 0x00007fb418933fcd in clone () from /lib/libc.so.6 No symbol table info available. #6 0x0000000000000000 in ?? () No symbol table info available.
(gdb) thread apply all bt
Thread 5 (Thread 31286): #0 0x00007fb41892c742 in select () from /lib/libc.so.6 #1 0x00007fb418caab2a in apr_sleep (t=100000) at time/unix/ time.c:246 #2 0x00007fb418c7aba5 in do_sleep (t=100000) at src/ switch_time.c:109 #3 0x00007fb418c7ad95 in switch_sleep (t=100000) at src/switch_time.c:178 #4 0x00007fb418c16b75 in pool_thread (thread=0x1417ff8, obj=0x0) at src/switch_core_memory.c:531 #5 0x00007fb418ca8c01 in dummy_worker (opaque=0x1417ff8) at threadproc/unix/thread.c:138 #6 0x00007fb417ff53ba in start_thread () from /lib/ libpthread.so.0 #7 0x00007fb418933fcd in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? ()
Thread 4 (Thread 31264): #0 0x00007fb417ffbbc5 in __lll_unlock_wake () from /lib/libpthread.so.0 #1 0x00007fb417ff85c9 in _L_unlock_56 () from /lib/ libpthread.so.0 #2 0x00007fb417ff8206 in __pthread_mutex_unlock_usercnt () from /lib/libpthread.so.0 #3 0x00007fb418ca12de in apr_thread_mutex_unlock (mutex=0x12b83d8) at locks/unix/thread_mutex.c:121 #4 0x00007fb418c94b78 in apr_queue_trypush (queue=0x12b8398, data=0x12b4b60) at misc/apr_queue.c:242 #5 0x00007fb418c0464a in switch_queue_trypush (queue=0x12b8398, data=0x12b4b60) at src/switch_apr.c:931 #6 0x00007fb418c3dfe8 in switch_event_fire_detailed (file=0x7fb418d55ce0 "src/switch_xml.c", func=0x7fb418d562f0 "switch_xml_open_root", line=1918, event=0x7fff211d0a58, user_data=0x0) at src/switch_event.c:1128 #7 0x00007fb418c76a66 in switch_xml_open_root (reload=0 '\0', err=0x7fff211d1110) at src/switch_xml.c:1918 #8 0x00007fb418c76b5e in switch_xml_init (pool=0x126aff8, err=0x7fff211d1110) at src/switch_xml.c:1945 #9 0x00007fb418c2d78f in switch_core_init (flags=1, console=SWITCH_TRUE, err=0x7fff211d1110) at src/switch_core.c:1231 #10 0x00007fb418c2e02b in switch_core_init_and_modload (flags=1, console=SWITCH_TRUE, err=0x7fff211d1110) at src/switch_core.c:1422 #11 0x0000000000400ed7 in main (argc=1, argv=0x7fff211d1628) at main.c:97
Thread 3 (Thread 31288): #0 0x00007fb417ff92e9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007fb418ca13ef in apr_thread_cond_wait (cond=0x14dbb08, mutex=0x14dbab8) at locks/unix/thread_cond.c:68 #2 0x00007fb418c94c1f in apr_queue_pop (queue=0x14dba78, data=0x7fb41676c0b8) at misc/apr_queue.c:276 #3 0x00007fb418c045ca in switch_queue_pop (queue=0x14dba78, data=0x7fb41676c0b8) at src/switch_apr.c:902 #4 0x00007fb418c3ba5e in switch_event_thread (thread=0x1663ac8, obj=0x14dba78) at src/switch_event.c:289 #5 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663ac8) at threadproc/unix/thread.c:138 #6 0x00007fb417ff53ba in start_thread () from /lib/ libpthread.so.0 #7 0x00007fb418933fcd in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? ()
Thread 2 (Thread 31289): #0 0x00007fb417ff92e9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007fb418ca13ef in apr_thread_cond_wait (cond=0x159fb18, mutex=0x159fac8) at locks/unix/thread_cond.c:68 #2 0x00007fb418c94c1f in apr_queue_pop (queue=0x159fa88, data=0x7fb4167a80b8) at misc/apr_queue.c:276 #3 0x00007fb418c045ca in switch_queue_pop (queue=0x159fa88, data=0x7fb4167a80b8) at src/switch_apr.c:902 #4 0x00007fb418c3ba5e in switch_event_thread (thread=0x1663af8, obj=0x159fa88) at src/switch_event.c:289 #5 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663af8) at threadproc/unix/thread.c:138 #6 0x00007fb417ff53ba in start_thread () from /lib/ libpthread.so.0 #7 0x00007fb418933fcd in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? ()
Thread 1 (Thread 31287): #0 0x00007fb418c94a7f in apr_queue_trypush (queue=0x7fb4168e45a8, data=0x12b4b60) at misc/apr_queue.c:215 #1 0x00007fb418c0464a in switch_queue_trypush (queue=0x7fb4168e45a8, data=0x12b4b60) at src/switch_apr.c:931 #2 0x00007fb418c3bab8 in switch_event_thread (thread=0x1663a98, obj=0x12b8398) at src/switch_event.c:305 #3 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663a98) at threadproc/unix/thread.c:138 #4 0x00007fb417ff53ba in start_thread () from /lib/ libpthread.so.0 #5 0x00007fb418933fcd in clone () from /lib/libc.so.6 #6 0x0000000000000000 in ?? ()
(gdb) thread apply all bt full
Thread 5 (Thread 31286): #0 0x00007fb41892c742 in select () from /lib/libc.so.6 No symbol table info available. #1 0x00007fb418caab2a in apr_sleep (t=100000) at time/unix/ time.c:246 tv = {tv_sec = 0, tv_usec = 88462} #2 0x00007fb418c7aba5 in do_sleep (t=100000) at src/ switch_time.c:109 No locals. #3 0x00007fb418c7ad95 in switch_sleep (t=100000) at src/switch_time.c:178 No locals. #4 0x00007fb418c16b75 in pool_thread (thread=0x1417ff8, obj=0x0) at src/switch_core_memory.c:531 len = 0 #5 0x00007fb418ca8c01 in dummy_worker (opaque=0x1417ff8) at threadproc/unix/thread.c:138 thread = 0x1417ff8 #6 0x00007fb417ff53ba in start_thread () from /lib/ libpthread.so.0 No symbol table info available. #7 0x00007fb418933fcd in clone () from /lib/libc.so.6 No symbol table info available. #8 0x0000000000000000 in ?? () No symbol table info available.
Thread 4 (Thread 31264): #0 0x00007fb417ffbbc5 in __lll_unlock_wake () from /lib/libpthread.so.0 No symbol table info available. #1 0x00007fb417ff85c9 in _L_unlock_56 () from /lib/ libpthread.so.0 No symbol table info available. #2 0x00007fb417ff8206 in __pthread_mutex_unlock_usercnt () from /lib/libpthread.so.0 No symbol table info available. #3 0x00007fb418ca12de in apr_thread_mutex_unlock (mutex=0x12b83d8) at locks/unix/thread_mutex.c:121 status = 0 #4 0x00007fb418c94b78 in apr_queue_trypush (queue=0x12b8398, data=0x12b4b60) at misc/apr_queue.c:242 rv = 0 #5 0x00007fb418c0464a in switch_queue_trypush (queue=0x12b8398, data=0x12b4b60) at src/switch_apr.c:931 s = 0 #6 0x00007fb418c3dfe8 in switch_event_fire_detailed (file=0x7fb418d55ce0 "src/switch_xml.c", func=0x7fb418d562f0 "switch_xml_open_root", line=1918, event=0x7fff211d0a58, user_data=0x0) at src/switch_event.c:1128 was = 0 index = 0 __PRETTY_FUNCTION__ = "switch_event_fire_detailed" __func__ = "switch_event_fire_detailed" #7 0x00007fb418c76a66 in switch_xml_open_root (reload=0 '\0', err=0x7fff211d1110) at src/switch_xml.c:1918 event = 0x12b4b60 path_buf = "/opt/freeswitch/conf/freeswitch.xml \0\0\0\0\0\340\33\"\1\0\0\0\0\0\320\34\31\264\177\0\0)'\214\30\264\177\0\0\6\0\0\0\b\0\0\1\200\247\273\30\264\177\0\0\0\0\0\0\0\0\0\0\340\33\"\1\0\0\0\0O\0\0\0\0\0\0\0\271\24\214\0\0\4\0\0`\6\35!\377\177\0\0@\16\35!\377\177\0\0\340\33\"\1\0\0\0\0\0\272\273\30\264\177\0\0p\r\35!\377\177\0\0`\v@\0\0\0\0\0 \26\35!\377\177", '\0' <repeats 18 times>, "v\202\214\30\264\177\0\0\71\0\0\0\0\0\0\0\224\t \307 \30 \264 \177 \0 \0 \65 \2 \0 \0 \60 \0 \0 \0 \200 \0 \0 \0\377\177\0\0\6\0\325\30\264\177\0\0\263\352\16\0\377\177\0\0\320\v \35!\377"... hasmain = 0 '\0' errcnt = 0 '\0' new_main = 0x1221ca0 r = 0x0 __func__ = "switch_xml_open_root" #8 0x00007fb418c76b5e in switch_xml_init (pool=0x126aff8, err=0x7fff211d1110) at src/switch_xml.c:1945 xml = 0x12b8338 __PRETTY_FUNCTION__ = "switch_xml_init" ---Type <return> to continue, or q <return> to quit--- #9 0x00007fb418c2d78f in switch_core_init (flags=1, console=SWITCH_TRUE, err=0x7fff211d1110) at src/switch_core.c:1231 uuid = {data = "\0\0\0\0\0\0\0\0\200\247\273\30\264\177\0"} guess_ip = "::1\0\61\66\70.69.69", '\0' <repeats 187 times>"\331, _ \222 \30 \264 \177 \0\0\0\0\0\0\0\0\0\0\25\0\0\0\0\0\0\0\0\320\34\31\264\177\0\0\25", '\0' <repeats 15 times>, "J\30\214\30\264\177\0" dir_path = 0x0 mask = 16777215 in = {s_addr = 16777215} __PRETTY_FUNCTION__ = "switch_core_init" #10 0x00007fb418c2e02b in switch_core_init_and_modload (flags=1, console=SWITCH_TRUE, err=0x7fff211d1110) at src/switch_core.c:1422 event = 0x400b60 __func__ = "switch_core_init_and_modload" #11 0x0000000000400ed7 in main (argc=1, argv=0x7fff211d1628) at main.c:97 flags = 1 err = 0x7fb418d56314 "Success" console = SWITCH_TRUE destroy_status = SWITCH_STATUS_SUCCESS ret = 0 __PRETTY_FUNCTION__ = "main"
Thread 3 (Thread 31288): #0 0x00007fb417ff92e9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 No symbol table info available. #1 0x00007fb418ca13ef in apr_thread_cond_wait (cond=0x14dbb08, mutex=0x14dbab8) at locks/unix/thread_cond.c:68 rv = 0 #2 0x00007fb418c94c1f in apr_queue_pop (queue=0x14dba78, data=0x7fb41676c0b8) at misc/apr_queue.c:276 rv = 0 #3 0x00007fb418c045ca in switch_queue_pop (queue=0x14dba78, data=0x7fb41676c0b8) at src/switch_apr.c:902 No locals. #4 0x00007fb418c3ba5e in switch_event_thread (thread=0x1663ac8, obj=0x14dba78) at src/switch_event.c:289 pop = 0x0 event = 0x0 queue = 0x14dba78 index = 0 my_id = 1 __func__ = "switch_event_thread" #5 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663ac8) at threadproc/unix/thread.c:138 thread = 0x1663ac8 #6 0x00007fb417ff53ba in start_thread () from /lib/ libpthread.so.0 No symbol table info available. #7 0x00007fb418933fcd in clone () from /lib/libc.so.6 No symbol table info available. #8 0x0000000000000000 in ?? () No symbol table info available.
Thread 2 (Thread 31289): #0 0x00007fb417ff92e9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 No symbol table info available. #1 0x00007fb418ca13ef in apr_thread_cond_wait (cond=0x159fb18, mutex=0x159fac8) at locks/unix/thread_cond.c:68 rv = 0 #2 0x00007fb418c94c1f in apr_queue_pop (queue=0x159fa88, data=0x7fb4167a80b8) at misc/apr_queue.c:276 rv = 0 #3 0x00007fb418c045ca in switch_queue_pop (queue=0x159fa88, data=0x7fb4167a80b8) at src/switch_apr.c:902 No locals. #4 0x00007fb418c3ba5e in switch_event_thread (thread=0x1663af8, obj=0x159fa88) at src/switch_event.c:289 ---Type <return> to continue, or q <return> to quit--- pop = 0x0 event = 0x0 queue = 0x159fa88 index = 0 my_id = 2 __func__ = "switch_event_thread" #5 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663af8) at threadproc/unix/thread.c:138 thread = 0x1663af8 #6 0x00007fb417ff53ba in start_thread () from /lib/ libpthread.so.0 No symbol table info available. #7 0x00007fb418933fcd in clone () from /lib/libc.so.6 No symbol table info available. #8 0x0000000000000000 in ?? () No symbol table info available.
Thread 1 (Thread 31287): #0 0x00007fb418c94a7f in apr_queue_trypush (queue=0x7fb4168e45a8, data=0x12b4b60) at misc/apr_queue.c:215 rv = 0 #1 0x00007fb418c0464a in switch_queue_trypush (queue=0x7fb4168e45a8, data=0x12b4b60) at src/switch_apr.c:931 s = 0 #2 0x00007fb418c3bab8 in switch_event_thread (thread=0x1663a98, obj=0x12b8398) at src/switch_event.c:305 pop = 0x12b4b60 event = 0x12b4b60 queue = 0x12b8398 index = 0 my_id = 0 __func__ = "switch_event_thread" #3 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663a98) at threadproc/unix/thread.c:138 thread = 0x1663a98 #4 0x00007fb417ff53ba in start_thread () from /lib/ libpthread.so.0 No symbol table info available. #5 0x00007fb418933fcd in clone () from /lib/libc.so.6 No symbol table info available. #6 0x0000000000000000 in ?? () No symbol table info available.
FS svn r14092, gcc-4.3.3, x86_64
Any idea what should I add to free up everything after shutdown and lets start with "blank list"?
Thanks in advance, Tamas
_______________________________________________ Freeswitch-dev mailing list Freeswitch-dev@lists.freeswitch.org <mailto:Freeswitch-dev@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com <mailto:MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com <mailto:PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net <http://irc.freenode.net> #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <mailto:sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 <http://iax:guest@conference.freeswitch.org/888> googletalk:conf+888@conference.freeswitch.org <mailto:googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400 ------------------------------------------------------------------------
_______________________________________________ Freeswitch-dev mailing list Freeswitch-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch- dev http://www.freeswitch.org
_______________________________________________ Freeswitch-dev mailing list Freeswitch-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org