Giter Site home page Giter Site logo

amooma / gs5 Goto Github PK

View Code? Open in Web Editor NEW
42.0 42.0 34.0 18.85 MB

Gemeinschaft 5. A FreeSWITCH and Ruby on Rails based PBX.

Home Page: http://amooma.de/gemeinschaft/gs5

License: MIT License

Ruby 54.82% JavaScript 32.58% CoffeeScript 0.05% CSS 0.13% Lua 10.85% Python 1.53% Shell 0.05%

gs5's Introduction

AMOOMA

To start your Phoenix server:

  • Install dependencies with mix deps.get
  • Create and migrate your database with mix ecto.create && mix ecto.migrate
  • Install Node.js dependencies with cd assets && npm install
  • Start Phoenix endpoint with mix phx.server

Now you can visit localhost:4000 from your browser.

Ready to run in production? Please check our deployment guides.

Learn more

gs5's People

Contributors

jpawlowski avatar marioricalde avatar saschadaniels avatar spag avatar wintermeyer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gs5's Issues

Move constants into a database table.

Move the content of /config/initializers/gemeinschaft_parameters.rb into a table which gets read by an initializer at start time. Any change would have to be followed by a boot of the system.

db:migrations fail with utf8

IN the latest production build migrations fail once again:

Wed Dec 19 15:15:14 2012: ** Invoke db:migrate (first_time)
Wed Dec 19 15:15:14 2012: ** Invoke environment (first_time)
Wed Dec 19 15:15:14 2012: ** Execute environment
Wed Dec 19 15:15:18 2012: ** Invoke db:load_config (first_time)
Wed Dec 19 15:15:18 2012: ** Invoke rails_env (first_time)
Wed Dec 19 15:15:18 2012: ** Execute rails_env
Wed Dec 19 15:15:18 2012: ** Execute db:load_config
Wed Dec 19 15:15:18 2012: ** Execute db:migrate
Wed Dec 19 15:15:18 2012: rake aborted!
Wed Dec 19 15:15:18 2012: An error has occurred, all later migrations canceled:
Wed Dec 19 15:15:18 2012: 
Wed Dec 19 15:15:18 2012: Mysql2::Error: Specified key was too long; max key length is 767 bytes: CREATE UNIQUE INDEX `uuindex` ON `channels` (`uuid`, `hostname`)
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:243:in `query'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:243:in `block in execute'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in log'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activesupport-3.2.2/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:243:in `execute'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/connection_adapters/mysql2_adapter.rb:211:in `execute'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/schema_statements.rb:344:in `add_index'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:450:in `block in method_missing'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:424:in `block in say_with_time'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/benchmark.rb:280:in `measure'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:424:in `say_with_time'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:444:in `method_missing'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:334:in `method_missing'
Wed Dec 19 15:15:18 2012: /opt/GS5/db/migrate/20111104140900_create_channels.rb:35:in `up'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:358:in `up'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:396:in `block (2 levels) in migrate'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/benchmark.rb:280:in `measure'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:396:in `block in migrate'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:118:in `with_connection'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:377:in `migrate'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:512:in `migrate'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:704:in `block (2 levels) in migrate'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:761:in `call'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:761:in `ddl_transaction'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:703:in `block in migrate'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:684:in `each'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:684:in `migrate'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:554:in `up'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/migration.rb:535:in `migrate'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.2/lib/active_record/railties/databases.rake:153:in `block (2 levels) in <top (required)>'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block (2 levels) in top_level'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block in top_level'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `block in run'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/bin/rake:19:in `load'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/bin/rake:19:in `<main>'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/bin/ruby_noexec_wrapper:14:in `eval'
Wed Dec 19 15:15:18 2012: /var/lib/gs5/.rvm/gems/ruby-1.9.3-p327/bin/ruby_noexec_wrapper:14:in `<main>'
Wed Dec 19 15:15:18 2012: Tasks: TOP => db:migrate

Question: Is it okay to create the gemeinschaft db with utf8 settings instead of latin1?
This is something I added yesterday in https://github.com/GS5-build/GBE/commit/9e56751d917e60d46db5a71ada2904e8ae8c8271

Purge call history log with one click

one should be able to purge the call history log with a single click, e.g. by marking all entries at once.
At the moment each entry needs to be marked one by one which is kind of frustrating if there are many entries in the log.

Update tenant and fallback_sip_account on existing phones

Since commit 9101b20 the Phone model uses "tenant" and "fallback_sip_account" to store fallback values for "phoneable" and "sip_account".

If a user logs out from a phone, "phoneable_id" is set to the value of "tenant" and "phoneable_type" to the string "Tenant".
"fallback_sip_account" is used in various provisioning controllers as a fallback for the "phone_sip_accounts" table.

Newly created phone entries should populate the fields automatically but after an update from a previous GS5 version those fields will be NULL.

The goal is to create a migration (or something else) to populate "tenant" and "fallback_sip_account" with the right values affecting existing phones only.

Used timezone seems to be incorrect in webgui

Currently there is a lack of 1 hour between the logged time in the web GUI's call history and the actual time the call occurred.

The host system is set to local time Europe/Berlin (CET) and system command date shows correct local time.
MySQL uses it's standard setting default-time-zone=SYSTEM which should rely on the system setting.

However the web GUI still shows a difference of 1 hour.

Workaround currently is to set MySQL's default-time-zone='+00:00' which sets MySQL to UTC which drifts MySQL away from system log files. It's also likely that this setting is not safe for summer time or other time zones but more a hack for hour CET timezone.
I also added MySQL timezone tables mentioned here so MySQL has full support to handle timezones correctly: http://dev.mysql.com/doc/refman/5.5/en/time-zone-upgrades.html

It seems the webgui and also xml phone exports use a wrong timezone setting or so.

Comparisons:

default-time-zone=SYSTEM

  • system date: Wed Dec 19 13:25:49 CET 2012
  • web GUI: 14:25
  • MySQL NOW(): 2012-12-19 13:25:49
  • select * from call_histories: 2012-12-19 13:25:49

default-time-zone='+00:00'

  • system date: Wed Dec 19 13:30:24 CET 2012
  • web GUI: 13:30
  • MySQL NOW(): 2012-12-19 12:30:24
  • select * from call_histories: 2012-12-19 12:30:24

The webgui should show the same information as we have in the database.
What WOULD be a good improvement though is to respect the visitors browser setting and to recalculate the time accordingly, e.g. by using the MySQL function mentioned in the link above.

DIRECTORY_SIP_ACCOUNT - sip account not found

After a fresh installation and setup of a new phone and new SIP account the phone provisioning is successful. However the phone is not able to login with the provisioned SIP account as FreeSwitch does not know it:

2012-12-18 12:53:45.897492 [DEBUG] switch_cpp.cpp:1232 #C# [192.168.6.60] DIRECTORY_SIP_ACCOUNT - sip account not found - auth_name: a393928ca358e56657a2, domain: 192.168.6.60

Looking at the web interface it's exactly this auth_name that is existing. Something must have broken since the last commits...

Md5 hash

Wäre es möglich auf der Webseite einen md5 hash zum Download veröffentlichen um sicher zu stellen das das Paket unverändert herunter geladen wurde?

FreeSwitch crashes after starting a recording

When I am connected to a conference call and push the button to record the session, FreeSwitch crashes and needs to be restarted.
Following lines are logged:

2012-12-19 12:54:25.446371 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 12:54:25.466397 [ERR] switch_core_file.c:80 File [/var/lib/freeswitch/recordings//] is a directory not a file.
2012-12-19 12:54:25.466397 [DEBUG] switch_core_media_bug.c:502 Attaching BUG to sofia/gemeinschaft/[email protected]
2012-12-19 12:54:25.466397 [NOTICE] sofia.c:7417 Recording sofia/gemeinschaft/[email protected] to /var/lib/freeswitch/recordings//
2012-12-19 12:54:25.466397 [DEBUG] sofia.c:7448 dispatched freeswitch event for INFO
2012-12-19 12:54:25.466397 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/[email protected] [BREAK]

Create default GsNode entry and set HOMEBASE_IP_ADDRESS.

---cut---
Ich habe gerade festgestellt, dass wenn ich einen SipAccount anlege dieser die gs_node_id = 1 hat.

Das waere ja nicht schlimm, allerdings ist die gs_nodes Tabelle leer, es gibt also keinen Node 1.

Weiterhin ist in /opt/GS5/config/initializers/gemeinschaft_parameters.rb

HOMEBASE_IP_ADDRESS = '0.0.0.0'

das bedeutet, auch wenn in gs_nodes was drinnstuende, koennte das System sich selbst gar nicht finden.
---cut---

[wheezy] support for lua 5.2

For the planned migration to Wheezy and therefore lua version 5.2, GS5 code needs some enhancements.

For instance startup of FreeSwitch shows following error:

2012-12-30 21:15:35.351809 [ERR] mod_lua.cpp:198 /usr/scripts/common/database.lua:42: attempt to index global 'luasql' (a nil value)
stack traceback:
        /usr/scripts/common/database.lua:42: in function 'connect'
        /usr/share/freeswitch/scripts/fax_daemon.lua:20: in main chunk

Short research result:
http://stackoverflow.com/questions/10854971/luasql-nil-value

Demo-mode status should be mentioned somewhere on each page

If we are running in Demo Live-Mode users should see this also in the web gui.
This information can be extracted quite easily, this is something in Shell script you could adapt to ruby code:

if [[ x`cat /proc/cmdline | grep boot=live` != x"" ]]
    then
    LIVE=true
else
    LIVE=false
fi

problems when creating an admin account - fresh installation

After creating a new server (fresh installation) via http://localhost/gemeinschaft_setups/new with filling out any needed forms following error occurs:

*** snip
Errno::ENOENT (No such file or directory - /nonexistent/.ruby-uuid):
lib/activerecord_extensions.rb:10:in new' lib/activerecord_extensions.rb:10:inpopulate_uuid'
app/controllers/gemeinschaft_setups_controller.rb:22:in `create'

cache: [POST /gemeinschaft_setups] invalidate, pass
*** snap

uuid-2.3.6 is defintely installed. How can I solve this issue?

call histories display should be faster

Rendering of call_histories/_index_core.html.haml is quite slow as seen in production.log below. Time is dependent on number of entries to render:

Started GET "/sip_accounts/4/call_histories" for a.b.c.d at 2012-12-21 10:54:20 +0100
Processing by CallHistoriesController#index as HTML
Parameters: {"sip_account_id"=>"4"}
Rendered call_histories/_navigation.html.haml (4.5ms)
Rendered call_histories/_navigation.html.haml (3.4ms)
Rendered call_histories/_index_core.html.haml (5816.4ms)
Rendered call_histories/index.html.haml within layouts/application (5817.7ms)
Rendered shared/_header.de.html.haml (11.4ms)
Rendered shared/_system_message.html.haml (1.5ms)
Rendered shared/_flash.html.haml (0.1ms)
Completed 200 OK in 5898ms (Views: 5803.6ms | ActiveRecord: 44.3ms)

Started GET "/sip_accounts/4/call_histories?type=missed" for a.b.c.d at 2012-12-21 10:54:44 +0100
Processing by CallHistoriesController#index as HTML
Parameters: {"type"=>"missed", "sip_account_id"=>"4"}
Rendered call_histories/_navigation.html.haml (3.0ms)
Rendered call_histories/_navigation.html.haml (2.3ms)
Rendered call_histories/_index_core.html.haml (6447.3ms)
Rendered call_histories/index.html.haml within layouts/application (6448.5ms)
Rendered shared/_header.de.html.haml (15.2ms)
Rendered shared/_system_message.html.haml (1.3ms)
Rendered shared/_flash.html.haml (0.1ms)
Completed 200 OK in 6519ms (Views: 6409.3ms | ActiveRecord: 67.2ms)

Started GET "/sip_accounts/4/call_histories?type=received" for a.b.c.d at 2012-12-21 10:54:56 +0100
Processing by CallHistoriesController#index as HTML
Parameters: {"type"=>"received", "sip_account_id"=>"4"}
Rendered call_histories/_navigation.html.haml (1.5ms)
Rendered call_histories/_navigation.html.haml (0.8ms)
Rendered call_histories/_index_core.html.haml (2617.2ms)
Rendered call_histories/index.html.haml within layouts/application (2618.4ms)
Rendered shared/_header.de.html.haml (200.0ms)
Rendered shared/_system_message.html.haml (1.3ms)
Rendered shared/_flash.html.haml (0.1ms)
Completed 200 OK in 3075ms (Views: 2803.8ms | ActiveRecord: 51.9ms)

Started GET "/sip_accounts/4/call_histories?type=dialed" for a.b.c.d at 2012-12-21 10:55:03 +0100
Processing by CallHistoriesController#index as HTML
Parameters: {"type"=>"dialed", "sip_account_id"=>"4"}
Rendered call_histories/_navigation.html.haml (4.2ms)
Rendered call_histories/_navigation.html.haml (2.9ms)
Rendered call_histories/_index_core.html.haml (5902.3ms)
Rendered call_histories/index.html.haml within layouts/application (5903.7ms)
Rendered shared/_header.de.html.haml (9.0ms)
Rendered shared/_system_message.html.haml (1.2ms)
Rendered shared/_flash.html.haml (0.1ms)
Completed 200 OK in 5982ms (Views: 5842.8ms | ActiveRecord: 82.5ms)

Started GET "/sip_accounts/4/call_histories?type=forwarded" for a.b.c.d at 2012-12-21 10:55:12 +0100
Processing by CallHistoriesController#index as HTML
Parameters: {"type"=>"forwarded", "sip_account_id"=>"4"}
Rendered call_histories/_navigation.html.haml (1.6ms)
Rendered call_histories/_navigation.html.haml (0.7ms)
Rendered call_histories/_index_core.html.haml (923.1ms)
Rendered call_histories/index.html.haml within layouts/application (924.2ms)
Rendered shared/_header.de.html.haml (8.5ms)
Rendered shared/_system_message.html.haml (1.2ms)
Rendered shared/_flash.html.haml (0.1ms)
Completed 200 OK in 990ms (Views: 932.9ms | ActiveRecord: 12.5ms)

Conferences should also be reachable by a central number

One should be able to call a central number where the conference number is being asked in addition to their PIN. DDI or overdialing is not possible for everybody and that way a greater number of conferences can be used even with a small amount of dial-in numbers.

VPN solution for Snom phones.

Peter schlägt vor:

Ab Firmware 8.4.27 sollen alle Snoms angeblich OpenVPN koennen.
Snom Wiki:
http://wiki.snom.com/Networking/Virtual_Private_Network_(VPN)

OpenVPN hat den Vorteil, dass man damit vielleicht die RTP-NAT
Problematik umgehen koennte, da das VPN nur einen Port benutzt.

So wie ich das verstanden habe, muss man nur auf dem Server Zetifikate,
Key und Config in einer tar-Datei Packen und die URL zu dieser
Provisionieren, im Provisioning den richtigen Parameter aktivieren und
fertig.

Das Setup eines OpenVPN Servers ist mittlerweile recht simpel. Ich habe
vor ein par Tagen nach folgender Anleitung in ein par Minuten einen
Server aufgesetzt:
http://library.linode.com/networking/openvpn/debian-6-squeeze

Vielleiicht liesse sich das ja fuer ein kuenftiges GS5 Release ja
automatisieren und mit auf die CD packen?
Man muesste nur "after_create" die Certs fuer die Telefone generieren.

Alternativ liesse sich auch per externem Befehl vorher eine Anzahl davon
"auf halde" generieren und dann erst spaeter dem Telefon zuweisen.
Die Konfigurationsdatei ist fuer alle gleich und benoetigt, wie auch
Zertifikate und Key keinerlei Daten vom Client.

Auf der Client-Seite beschraenkt sich die Installation dabei darauf die
generierten Zerifikate und den Schluessel auf den Client zu kopieren und
die IP des Servers einzutragen.

Ich habe sie z.B. per Copy&Paste in die DD-WRT GUI eines Linksys kopiert
und das VPN lief auf Anhieb.

Muesste mit den Snoms ja prinzipiell ja nicht viel anders sein.

Es liessen sich z.B. auch komplette externe Offices mit Hilfe eines z.B.
eines (oder mehrerer) Asus RT-N16 an die GS5 anschliessen.

Man muss dann nur dafuer sorgen dass alle Telefone hinter diesem Router
sind und Zertifikate aus der GS5 GUI Copy&Pasten - fertig.

Can not install with manual partitioning

Trying to install I would like to use manual partitioning - this leads to an error:

"No root filesystem" (see attached screenshot).

The partitioner is called after this, but jumps immediately to the same screen and is stuck in a loop.

AMOOMA_GS5_NO_ROOT_PARTITION_FAIL

Update tenant and fallback_sip_account on existing phones

Since commit 9101b20 the Phone model uses "tenant" and "fallback_sip_account" to store fallback values for "phoneable" and "sip_account".

If a user logs out from a phone, "phoneable_id" is set to the value of "tenant" and "phoneable_type" to the string "Tenant".
"fallback_sip_account" is used in various provisioning controllers as a fallback for the "phone_sip_accounts" table.

Newly created phone entries should populate the fields automatically but after an update from a previous GS5 version those fields will be NULL.

The goal is to create a migration (or something else) to populate "tenant" and "fallback_sip_account" with the right values affecting existing phones only.

Installation auf Igel-4210 LX

Bein Versuch GS5 auf einem Igel-4210 LX Thin Client zu installieren kommt es zu diversen Problemen.
U. A. reichen die eingebauten 1GB Ram scheinbar nicht und die Datenbanken zu migrieren.
Ich habe die Installation über 10 Stunden laufen lassen und sie konnte scheinbar trotzdem nicht alle Scripte der Installation erfolgreich abarbeiten. Es werden immer wieder Prozesse geschlossen um Speicher frei zu machen unter anderem apache, mysql und ruby.

Nach den 10 Stunden habe ich folgende Fehler angezeigt bekommen.
2012-12-30 14 25 22

Darauf hin habe ich den Thin Client neu gebootet und es kam zur erneuten Ersteinrichtung durch die Scripts welche folgende Fehler ergaben.

2012-12-30 16 06 48
2012-12-30 16 10 08

Beim "Execute db:migrate" scheint der Thin Client nun wieder aufgrund von Speichermangel zu hängen.

Wenn weitere Daten wie z. B. betimmte log-Dateien benötigte werden bitte nachfragen.

Asset issues / images not shown

After a fresh installation some assets may not load or may not be available.
For instance

/assets/icons/phone-down-grey-32x.png
No route matches [GET] "/assets/icons/phone-down-grey-32x.png"

Precompilation task run successfully during first bootup according to /var/log/gemeinschaft/setup.log and /var/log/boot.
Changing from development to production environment shows a running installation, although graphics like the one mentioned are not shown

Create Demo Accounts

The setup should have a Boolean create_demo_accounts which triggers the creation of some SipAccounts, Conferences and what not.

Provisioning URL in phone#view

Aktuell ist im view folgender Code:

- if @phone.ip_address.blank? && @phone.phone_model.manufacturer.ieee_name == 'SNOM Technology AG'
  %p
    Sollten Sie Ihren DHCP-Server noch nicht für das automatische Konfigurieren der GS5 Provisionierungs-URL konfiguriert haben, können Sie manuell in Ihrem Telefon die folgende Provisionierungs-URL eingeben. Das "{mac}" bitte genau so eingeben, es wird vom Telefon automatisch mit der eigenen MAC-Adresse befüllt:
    %pre
      = "http://#{GemeinschaftSetup.first.sip_domain.host}/settings-{mac}"

Das müsste noch refactoriert und für weitere Hersteller angepasst werden.

Access denied when trying to create a new group

I am getting:

Access denied! Please ask your admin to grant you the necessary rights.

when I try to create a new Group.

I log into the webinterface and go to the url:
http://localhost:8080/tenants/2/user_groups/new

its localhost because I am using ssh forwarding. But thats not the problem cause it also happens on another machine in the network where gemeinschaft is installed.

Then I insert the name an click submit and get the screen with the error message.
Bildschirmfoto

As you see, the url is jumping to localhost:8080

I tried that on 2 fresh installations with the same result

Snom 870, usage and visibility of icons

Remove not used or supported icons from display and/or change behavior of default icons.

Some example code I used with GS3.1

if ($phone_model == '870') {
        psetting('idle_icon_01',   '9', true);
        psetting('idle_icon_02',  '20', true);
        psetting('idle_icon_03',  '4', true);
        psetting('idle_icon_04',  '-1', true);
        psetting('idle_icon_05',   '6', true);
        psetting('idle_icon_06',  '-1', true);
        psetting('idle_icon_07',  '-1', true);
        psetting('idle_icon_08',  '-1', true);
        psetting('idle_icon_09',  '-1', true);
        psetting('idle_icon_10',  '-1', true);
        psetting('idle_icon_11',  '15', true);
        psetting('idle_icon_12',  '-1', true);
        psetting('idle_icon_13',  '-1', true);
        psetting('idle_icon_14',  '13', true);
        psetting('idle_icon_15',  '12', true);
/*
    -1 - remove icon
    2 - button for support screen
    3 - button for settings menu
    4 - button for on-phone address book
    5 - button for remote address books (ldap, ocs-buddy list)
    6 - button to switch DND
    7 - button to switch redirect all
    8 - button for choosing outgoing identity
    9 - button for clock
    11 - button for status messages
    12 - button for missed calls
    13 - button for received calls
    15 - button for redial
    16 - button for call monitoring
    19 - button for favorites address book
    20 - button for virtual keys screen
    21..35 - button for 15 living keys (sort of virtual key clones moved directly into the springboard)
*/
        psetting('backlight',     '15', true);
        psetting('backlight_idle', '0', true);
        psetting('dim_timer',     '300',true);
}

if ($phone_model >= '820') {
        psetting('idle_up_key_action'  , 'keyevent F_PREV_ID');
        psetting('idle_down_key_action', 'keyevent F_NEXT_ID');
        psetting('dkey_touch_idle_adr_book',    'url '. $prov_url_snom .'pb.php?m=$mac&u=$user_name1');
        psetting('dkey_touch_idle_list_missed', 'url '. $prov_url_snom .'dial-log.php?user=$user_name1&mac=$mac&type=missed');
        psetting('dkey_touch_idle_list_taken',  'url '. $prov_url_snom .'dial-log.php?user=$user_name1&mac=$mac&type=in');
        psetting('dkey_touch_idle_redial',      'url '. $prov_url_snom .'dial-log.php?user=$user_name1&mac=$mac&type=out');
        psetting('dkey_touch_idle_dialog',      'url '. $prov_url_snom .'dial-log.php?user=$user_name1&mac=$mac');
        psetting('dkey_directory', 'url '. $prov_url_snom .'pb.php?m=$mac&u=$user_name1');
}

Migration for the Polycom phone.

@spag Please add a migration for the polycom conference phone.

Example can be found in 20121230110747_snom_meetingpoint.rb:

  def up
    if Manufacturer.where(:ieee_name => 'SNOM Technology AG').any?
      snom = Manufacturer.where(:ieee_name => 'SNOM Technology AG').first
      snom.phone_models.create(:name => 'snom MeetingPoint', 
                               :product_homepage_url => 'http://www.snom.com/en/products/sip-conference-phone/snom-meetingpoint/',
                               :product_manual_homepage_url => 'http://wiki.snom.com/Snom_MeetingPoint/Documentation')
    end
  end

  def down
    PhoneModels.where(:name => 'snom MeetingPoint').destroy_all
  end

Let worker-job do notifications for fax and voicemail messages

Currently there are two cronjobs for fax and voicemail notification emails running every minute.
It seems this is performance relevant as system usage shows higher load average.

As we have the worker-job running already (don't know what it's doing currently, but we have it), it should take care of sending email notifications.

Maybe also the regular logout_phone could be done by the worker-job making cronjobs completely obsolete.

Call between FritzBox and Snom 821 with G.729 sounds like Mickey Mouse

As the Fritzbox supports G.729 by default, a call from my Snom 821 to it enables HD audio by default.
Unfortunately the sound is miserable as on the FritzFon I hear the caller is Mickey Mouse. On the Snom side though I hear nothing.

Calling from the FritzFon to the Snom does not enable HD audio and therefore everything is fine.

This is the session log:

2012-12-19 14:19:28.016532 [NOTICE] switch_channel.c:968 New Channel sofia/gemeinschaft/[email protected] [aef27684-7df5-4dcc-b7e1-9041b37fcd31]
2012-12-19 14:19:28.016532 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:28.016532 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:28.016532 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/[email protected]) Running State Change CS_NEW
2012-12-19 14:19:28.016532 [DEBUG] switch_core_state_machine.c:433 (sofia/gemeinschaft/[email protected]) State NEW
2012-12-19 14:19:28.045595 [DEBUG] sofia.c:5599 Channel sofia/gemeinschaft/[email protected] entering state [received][100]
2012-12-19 14:19:28.045595 [DEBUG] sofia.c:5610 Remote SDP:
v=0
o=root 225669309 225669309 IN IP4 192.168.6.173
s=call
c=IN IP4 192.168.6.173
t=0 0
m=audio 49902 RTP/AVP 0 8 3 9 2 18 4 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:3 GSM/8000
a=rtpmap:9 G722/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:4 G723/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20

2012-12-19 14:19:28.045595 [DEBUG] sofia_glue.c:5137 Audio Codec Compare [PCMU:0:8000:20:64000]/[PCMA:8:8000:20:64000]
2012-12-19 14:19:28.045595 [DEBUG] sofia_glue.c:5137 Audio Codec Compare [PCMA:8:8000:20:64000]/[PCMA:8:8000:20:64000]
2012-12-19 14:19:28.045595 [DEBUG] sofia_glue.c:3093 Set Codec sofia/gemeinschaft/[email protected] PCMA/8000 20 ms 160 samples 64000 bits
2012-12-19 14:19:28.045595 [DEBUG] switch_core_codec.c:111 sofia/gemeinschaft/[email protected] Original read codec set to PCMA:8
2012-12-19 14:19:28.045595 [DEBUG] sofia_glue.c:5266 Set 2833 dtmf send/recv payload to 101
2012-12-19 14:19:28.045595 [DEBUG] sofia.c:5827 (sofia/gemeinschaft/[email protected]) State Change CS_NEW -> CS_INIT
2012-12-19 14:19:28.045595 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:28.045595 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/[email protected]) Running State Change CS_INIT
2012-12-19 14:19:28.045595 [DEBUG] switch_core_state_machine.c:454 (sofia/gemeinschaft/[email protected]) State INIT
2012-12-19 14:19:28.045595 [DEBUG] mod_sofia.c:86 sofia/gemeinschaft/[email protected] SOFIA INIT
2012-12-19 14:19:28.045595 [DEBUG] mod_sofia.c:126 (sofia/gemeinschaft/[email protected]) State Change CS_INIT -> CS_ROUTING
2012-12-19 14:19:28.045595 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:28.045595 [DEBUG] switch_core_state_machine.c:454 (sofia/gemeinschaft/[email protected]) State INIT going to sleep
2012-12-19 14:19:28.045595 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/[email protected]) Running State Change CS_ROUTING
2012-12-19 14:19:28.045595 [DEBUG] switch_channel.c:2003 (sofia/gemeinschaft/[email protected]) Callstate Change DOWN -> RINGING
2012-12-19 14:19:28.045595 [DEBUG] switch_core_state_machine.c:470 (sofia/gemeinschaft/[email protected]) State ROUTING
2012-12-19 14:19:28.045595 [DEBUG] mod_sofia.c:149 sofia/gemeinschaft/[email protected] SOFIA ROUTING
2012-12-19 14:19:28.045595 [DEBUG] switch_core_state_machine.c:117 sofia/gemeinschaft/[email protected] Standard ROUTING
2012-12-19 14:19:28.045595 [INFO] mod_dialplan_xml.c:557 Processing Call <e91e1047f66f3fbe8cd4>->21 in context default
Dialplan: sofia/gemeinschaft/[email protected] parsing [default->invoke_default_dialplan] continue=true
Dialplan: sofia/gemeinschaft/[email protected] Absolute Condition [invoke_default_dialplan]
Dialplan: sofia/gemeinschaft/[email protected] Action set(script=${lua(dialplan_default.lua)}) 
Dialplan: sofia/gemeinschaft/[email protected] parsing [default->transfer_loop] continue=false
Dialplan: sofia/gemeinschaft/[email protected] Regex (FAIL) [transfer_loop] endpoint_disposition() =~ /BLIND_TRANSFER/ break=on-false
2012-12-19 14:19:28.045595 [DEBUG] switch_core_state_machine.c:167 (sofia/gemeinschaft/[email protected]) State Change CS_ROUTING -> CS_EXECUTE
2012-12-19 14:19:28.045595 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:28.045595 [DEBUG] switch_core_state_machine.c:470 (sofia/gemeinschaft/[email protected]) State ROUTING going to sleep
2012-12-19 14:19:28.045595 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/[email protected]) Running State Change CS_EXECUTE
2012-12-19 14:19:28.045595 [DEBUG] switch_core_state_machine.c:477 (sofia/gemeinschaft/[email protected]) State EXECUTE
2012-12-19 14:19:28.045595 [DEBUG] mod_sofia.c:242 sofia/gemeinschaft/[email protected] SOFIA EXECUTE
2012-12-19 14:19:28.045595 [DEBUG] switch_core_state_machine.c:209 sofia/gemeinschaft/[email protected] Standard EXECUTE
2012-12-19 14:19:28.045595 [DEBUG] switch_cpp.cpp:1232 ### [aef27684-7df5-4dcc-b7e1-9041b37fcd31] AUTHENTICATION_REQUIRED - domain: 192.168.6.60
EXECUTE sofia/gemeinschaft/[email protected] respond(407 192.168.6.60)
2012-12-19 14:19:28.045595 [DEBUG] mod_sofia.c:2640 Responding with 407 [192.168.6.60]
2012-12-19 14:19:28.045595 [DEBUG] switch_channel.c:2994 (sofia/gemeinschaft/[email protected]) Callstate Change RINGING -> HANGUP
2012-12-19 14:19:28.045595 [NOTICE] mod_sofia.c:2699 Hangup sofia/gemeinschaft/[email protected] [CS_EXECUTE] [CALL_REJECTED]
2012-12-19 14:19:28.045595 [DEBUG] switch_channel.c:3017 Send signal sofia/gemeinschaft/[email protected] [KILL]
2012-12-19 14:19:28.045595 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:28.045595 [DEBUG] switch_core_session.c:2678 sofia/gemeinschaft/[email protected] skip receive message [APPLICATION_EXEC_COMPLETE] (channel is hungup already)
2012-12-19 14:19:28.045595 [DEBUG] switch_cpp.cpp:635 CoreSession::hangup
2012-12-19 14:19:28.045595 [DEBUG] switch_cpp.cpp:1007 sofia/gemeinschaft/[email protected] destroy/unlink session from object
EXECUTE sofia/gemeinschaft/[email protected] set(script=)
2012-12-19 14:19:28.056022 [DEBUG] switch_core_session.c:2663 sofia/gemeinschaft/[email protected] skip receive message [APPLICATION_EXEC] (channel is hungup already)
2012-12-19 14:19:28.056022 [DEBUG] mod_dptools.c:1344 sofia/gemeinschaft/[email protected] SET [script]=[UNDEF]
2012-12-19 14:19:28.056022 [DEBUG] switch_core_session.c:2678 sofia/gemeinschaft/[email protected] skip receive message [APPLICATION_EXEC_COMPLETE] (channel is hungup already)
2012-12-19 14:19:28.056022 [DEBUG] switch_core_state_machine.c:477 (sofia/gemeinschaft/[email protected]) State EXECUTE going to sleep
2012-12-19 14:19:28.056022 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/[email protected]) Running State Change CS_HANGUP
2012-12-19 14:19:28.056022 [DEBUG] switch_core_state_machine.c:667 (sofia/gemeinschaft/[email protected]) State HANGUP
2012-12-19 14:19:28.056022 [DEBUG] mod_sofia.c:503 Channel sofia/gemeinschaft/[email protected] hanging up, cause: CALL_REJECTED
2012-12-19 14:19:28.056022 [INFO] switch_cpp.cpp:1232 #E# [aef27684-7df5-4dcc-b7e1-9041b37fcd31] PRESENCE_INBOUND: account: e91e1047f66f3fbe8cd4, state: alerting
2012-12-19 14:19:28.056022 [DEBUG] switch_cpp.cpp:1232 #E# PRESENCE - account: [email protected], state: confirmed, direction: inbound, uid: aef27684-7df5-4dcc-b7e1-9041b37fcd31
2012-12-19 14:19:28.056022 [DEBUG] mod_sofia.c:595 Challenging call
2012-12-19 14:19:28.065888 [DEBUG] mod_sofia.c:633 Responding to INVITE with: 407
2012-12-19 14:19:28.065888 [DEBUG] switch_core_state_machine.c:48 sofia/gemeinschaft/[email protected] Standard HANGUP, cause: CALL_REJECTED
2012-12-19 14:19:28.065888 [DEBUG] switch_core_state_machine.c:667 (sofia/gemeinschaft/[email protected]) State HANGUP going to sleep
2012-12-19 14:19:28.065888 [DEBUG] switch_core_state_machine.c:446 (sofia/gemeinschaft/[email protected]) State Change CS_HANGUP -> CS_REPORTING
2012-12-19 14:19:28.065888 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:28.065888 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/[email protected]) Running State Change CS_REPORTING
2012-12-19 14:19:28.065888 [DEBUG] switch_core_state_machine.c:749 (sofia/gemeinschaft/[email protected]) State REPORTING
2012-12-19 14:19:28.065888 [DEBUG] switch_core_state_machine.c:92 sofia/gemeinschaft/[email protected] Standard REPORTING, cause: CALL_REJECTED
2012-12-19 14:19:28.065888 [DEBUG] switch_core_state_machine.c:749 (sofia/gemeinschaft/[email protected]) State REPORTING going to sleep
2012-12-19 14:19:28.065888 [DEBUG] switch_core_state_machine.c:440 (sofia/gemeinschaft/[email protected]) State Change CS_REPORTING -> CS_DESTROY
2012-12-19 14:19:28.065888 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:28.065888 [DEBUG] switch_core_session.c:1488 Session 27 (sofia/gemeinschaft/[email protected]) Locked, Waiting on external entities
2012-12-19 14:19:28.065888 [NOTICE] switch_core_session.c:1506 Session 27 (sofia/gemeinschaft/[email protected]) Ended
2012-12-19 14:19:28.065888 [NOTICE] switch_core_session.c:1510 Close Channel sofia/gemeinschaft/[email protected] [CS_DESTROY]
2012-12-19 14:19:28.065888 [DEBUG] switch_core_state_machine.c:556 (sofia/gemeinschaft/[email protected]) Callstate Change HANGUP -> DOWN
2012-12-19 14:19:28.065888 [DEBUG] switch_core_state_machine.c:559 (sofia/gemeinschaft/[email protected]) Running State Change CS_DESTROY
2012-12-19 14:19:28.065888 [DEBUG] switch_core_state_machine.c:569 (sofia/gemeinschaft/[email protected]) State DESTROY
2012-12-19 14:19:28.065888 [DEBUG] mod_sofia.c:396 sofia/gemeinschaft/[email protected] SOFIA DESTROY
2012-12-19 14:19:28.065888 [INFO] switch_cpp.cpp:1232 #E# [aef27684-7df5-4dcc-b7e1-9041b37fcd31] PRESENCE_INBOUND: account: e91e1047f66f3fbe8cd4, state: idle
2012-12-19 14:19:28.065888 [DEBUG] switch_cpp.cpp:1232 #E# PRESENCE - account: [email protected], state: terminated, direction: inbound, uid: aef27684-7df5-4dcc-b7e1-9041b37fcd31
2012-12-19 14:19:28.065888 [DEBUG] switch_cpp.cpp:1232 #E# [aef27684-7df5-4dcc-b7e1-9041b37fcd31] CDR_SAVE - event: CHANNEL_DESTROY, direction: inbound, save_cdr: false
2012-12-19 14:19:28.065888 [DEBUG] switch_cpp.cpp:1232 #E# [aef27684-7df5-4dcc-b7e1-9041b37fcd31] CALL_HISTORY_SAVE - event: CHANNEL_DESTROY, direction: inbound, save_cdr: false
2012-12-19 14:19:28.105693 [NOTICE] switch_channel.c:968 New Channel sofia/gemeinschaft/[email protected] [7e316c85-68a7-4b41-a00b-9887a15ebb9b]
2012-12-19 14:19:28.105693 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:28.105693 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:28.105693 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/[email protected]) Running State Change CS_NEW
2012-12-19 14:19:28.105693 [DEBUG] switch_core_state_machine.c:433 (sofia/gemeinschaft/[email protected]) State NEW
2012-12-19 14:19:28.135703 [DEBUG] switch_cpp.cpp:1232 #C# [192.168.6.60] DIRECTORY_SIP_ACCOUNT - auth_name: e91e1047f66f3fbe8cd4, caller_name: Julian Pawlowski, domain: 192.168.6.60
2012-12-19 14:19:28.145670 [DEBUG] sofia.c:5599 Channel sofia/gemeinschaft/[email protected] entering state [received][100]
2012-12-19 14:19:28.145670 [DEBUG] sofia.c:5610 Remote SDP:
v=0
o=root 225669309 225669309 IN IP4 192.168.6.173
s=call
c=IN IP4 192.168.6.173
t=0 0
m=audio 49902 RTP/AVP 0 8 3 9 2 18 4 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:3 GSM/8000
a=rtpmap:9 G722/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:4 G723/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20

2012-12-19 14:19:28.145670 [DEBUG] sofia_glue.c:5137 Audio Codec Compare [PCMU:0:8000:20:64000]/[PCMA:8:8000:20:64000]
2012-12-19 14:19:28.145670 [DEBUG] sofia_glue.c:5137 Audio Codec Compare [PCMA:8:8000:20:64000]/[PCMA:8:8000:20:64000]
2012-12-19 14:19:28.145670 [DEBUG] sofia_glue.c:3093 Set Codec sofia/gemeinschaft/[email protected] PCMA/8000 20 ms 160 samples 64000 bits
2012-12-19 14:19:28.145670 [DEBUG] switch_core_codec.c:111 sofia/gemeinschaft/[email protected] Original read codec set to PCMA:8
2012-12-19 14:19:28.145670 [DEBUG] sofia_glue.c:5266 Set 2833 dtmf send/recv payload to 101
2012-12-19 14:19:28.145670 [DEBUG] sofia.c:5827 (sofia/gemeinschaft/[email protected]) State Change CS_NEW -> CS_INIT
2012-12-19 14:19:28.145670 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:28.145670 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/[email protected]) Running State Change CS_INIT
2012-12-19 14:19:28.145670 [DEBUG] switch_core_state_machine.c:454 (sofia/gemeinschaft/[email protected]) State INIT
2012-12-19 14:19:28.145670 [DEBUG] mod_sofia.c:86 sofia/gemeinschaft/[email protected] SOFIA INIT
2012-12-19 14:19:28.145670 [DEBUG] mod_sofia.c:126 (sofia/gemeinschaft/[email protected]) State Change CS_INIT -> CS_ROUTING
2012-12-19 14:19:28.145670 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:28.145670 [DEBUG] switch_core_state_machine.c:454 (sofia/gemeinschaft/[email protected]) State INIT going to sleep
2012-12-19 14:19:28.145670 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/[email protected]) Running State Change CS_ROUTING
2012-12-19 14:19:28.145670 [DEBUG] switch_channel.c:2003 (sofia/gemeinschaft/[email protected]) Callstate Change DOWN -> RINGING
2012-12-19 14:19:28.145670 [DEBUG] switch_core_state_machine.c:470 (sofia/gemeinschaft/[email protected]) State ROUTING
2012-12-19 14:19:28.145670 [DEBUG] mod_sofia.c:149 sofia/gemeinschaft/[email protected] SOFIA ROUTING
2012-12-19 14:19:28.145670 [DEBUG] switch_core_state_machine.c:117 sofia/gemeinschaft/[email protected] Standard ROUTING
2012-12-19 14:19:28.145670 [INFO] mod_dialplan_xml.c:557 Processing Call <e91e1047f66f3fbe8cd4>->21 in context default
Dialplan: sofia/gemeinschaft/[email protected] parsing [default->invoke_default_dialplan] continue=true
Dialplan: sofia/gemeinschaft/[email protected] Absolute Condition [invoke_default_dialplan]
Dialplan: sofia/gemeinschaft/[email protected] Action set(script=${lua(dialplan_default.lua)}) 
Dialplan: sofia/gemeinschaft/[email protected] parsing [default->transfer_loop] continue=false
Dialplan: sofia/gemeinschaft/[email protected] Regex (FAIL) [transfer_loop] endpoint_disposition() =~ /BLIND_TRANSFER/ break=on-false
2012-12-19 14:19:28.145670 [DEBUG] switch_core_state_machine.c:167 (sofia/gemeinschaft/[email protected]) State Change CS_ROUTING -> CS_EXECUTE
2012-12-19 14:19:28.145670 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:28.145670 [DEBUG] switch_core_state_machine.c:470 (sofia/gemeinschaft/[email protected]) State ROUTING going to sleep
2012-12-19 14:19:28.145670 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/[email protected]) Running State Change CS_EXECUTE
2012-12-19 14:19:28.145670 [DEBUG] switch_core_state_machine.c:477 (sofia/gemeinschaft/[email protected]) State EXECUTE
2012-12-19 14:19:28.145670 [DEBUG] mod_sofia.c:242 sofia/gemeinschaft/[email protected] SOFIA EXECUTE
2012-12-19 14:19:28.145670 [DEBUG] switch_core_state_machine.c:209 sofia/gemeinschaft/[email protected] Standard EXECUTE
2012-12-19 14:19:28.145670 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] AUTH_FIRST_STAGE - sipaccount autheticated by name/password: SipAccount=/b0976a20-2bac-0130-2b4f-000c29ac4bc3
2012-12-19 14:19:28.145670 [INFO] switch_cpp.cpp:1232 #E# [7e316c85-68a7-4b41-a00b-9887a15ebb9b] PRESENCE_INBOUND: account: e91e1047f66f3fbe8cd4, state: alerting
2012-12-19 14:19:28.145670 [DEBUG] switch_cpp.cpp:1232 #E# PRESENCE - account: [email protected], state: confirmed, direction: inbound, uid: 7e316c85-68a7-4b41-a00b-9887a15ebb9b
2012-12-19 14:19:28.156668 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] CALLER_DATA - auth account: sipaccount=2/b0976a20-2bac-0130-2b4f-000c29ac4bc3
2012-12-19 14:19:28.156668 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] CALLER_DATA - auth owner: user=1/6e973bf0-2b9f-0130-2b46-000c29ac4bc3
2012-12-19 14:19:28.156668 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] CALLER_DATA - caller account: sipaccount=2/b0976a20-2bac-0130-2b4f-000c29ac4bc3, phone_numbers: 1
2012-12-19 14:19:28.156668 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] CALLER_DATA - caller owner: user=1/6e973bf0-2b9f-0130-2b46-000c29ac4bc3
2012-12-19 14:19:28.156668 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] DESTINATION_NEW - sipaccount=5/@1, number: 21
2012-12-19 14:19:28.156668 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] DIALPLAN start - caller_id: 20 "Julian Pawlowski", number: 21
2012-12-19 14:19:28.156668 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] LOOP 1 - destination: sipaccount=5/@1, number: 21
EXECUTE sofia/gemeinschaft/[email protected] export(alert_info=http://amooma.de;info=Ringer1;x-line-id=0)
2012-12-19 14:19:28.156668 [DEBUG] switch_channel.c:1135 EXPORT (export_vars) [alert_info]=[http://amooma.de;info=Ringer1;x-line-id=0]
EXECUTE sofia/gemeinschaft/[email protected] export(effective_callee_id_number=21)
2012-12-19 14:19:28.156668 [DEBUG] switch_channel.c:1135 EXPORT (export_vars) [effective_callee_id_number]=[21]
EXECUTE sofia/gemeinschaft/[email protected] export(effective_callee_id_name=Julian Pawlowski)
2012-12-19 14:19:28.156668 [DEBUG] switch_channel.c:1135 EXPORT (export_vars) [effective_callee_id_name]=[Julian Pawlowski]
2012-12-19 14:19:28.156668 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] FORK 1/1 - sipaccount=5/@1, number: 21
2012-12-19 14:19:28.156668 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] CALL_WAITING - status: disabled, sip_account state: 
2012-12-19 14:19:28.156668 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] FORK DIAL - destinations: 1, timeout: 120
2012-12-19 14:19:28.156668 [DEBUG] switch_channel.c:1089 sofia/gemeinschaft/[email protected] EXPORTING[export_vars] [alert_info]=[http://amooma.de;info=Ringer1;x-line-id=0] to event
2012-12-19 14:19:28.156668 [DEBUG] switch_channel.c:1089 sofia/gemeinschaft/[email protected] EXPORTING[export_vars] [effective_callee_id_number]=[21] to event
2012-12-19 14:19:28.156668 [DEBUG] switch_channel.c:1089 sofia/gemeinschaft/[email protected] EXPORTING[export_vars] [effective_callee_id_name]=[Julian Pawlowski] to event
2012-12-19 14:19:28.156668 [DEBUG] switch_ivr_originate.c:2022 Parsing global variables
2012-12-19 14:19:28.156668 [DEBUG] switch_event.c:1608 Parsing variable [local_var_clobber]=[true]
2012-12-19 14:19:28.156668 [DEBUG] switch_ivr_originate.c:2442 Parsing session specific variables
2012-12-19 14:19:28.156668 [DEBUG] switch_event.c:1608 Parsing variable [gs_fork_index]=[1]
2012-12-19 14:19:28.156668 [DEBUG] switch_event.c:1608 Parsing variable [effective_callee_id_name]=[Julian Pawlowski]
2012-12-19 14:19:28.156668 [DEBUG] switch_event.c:1608 Parsing variable [effective_callee_id_number]=[21]
2012-12-19 14:19:28.167391 [DEBUG] switch_cpp.cpp:1232 #C# [192.168.6.60] DIRECTORY_SIP_ACCOUNT - auth_name: 7c9f585998cc343345b6, caller_name: Julian Pawlowski, domain: 192.168.6.60
2012-12-19 14:19:28.167391 [DEBUG] switch_core_state_machine.c:99 sofia/gemeinschaft/[email protected] Standard DESTROY
2012-12-19 14:19:28.167391 [DEBUG] switch_core_state_machine.c:569 (sofia/gemeinschaft/[email protected]) State DESTROY going to sleep
2012-12-19 14:19:28.167391 [DEBUG] switch_channel.c:1089 sofia/gemeinschaft/[email protected] EXPORTING[export_vars] [alert_info]=[http://amooma.de;info=Ringer1;x-line-id=0] to event
2012-12-19 14:19:28.167391 [DEBUG] switch_channel.c:1089 sofia/gemeinschaft/[email protected] EXPORTING[export_vars] [effective_callee_id_number]=[21] to event
2012-12-19 14:19:28.167391 [DEBUG] switch_channel.c:1089 sofia/gemeinschaft/[email protected] EXPORTING[export_vars] [effective_callee_id_name]=[Julian Pawlowski] to event
2012-12-19 14:19:28.167391 [DEBUG] switch_ivr_originate.c:2022 Parsing global variables
2012-12-19 14:19:28.167391 [NOTICE] switch_channel.c:968 New Channel sofia/gemeinschaft/sip:[email protected] [862b3e43-a824-44af-ab4f-9f76fd35c4c6]
2012-12-19 14:19:28.167391 [DEBUG] mod_sofia.c:4970 (sofia/gemeinschaft/sip:[email protected]) State Change CS_NEW -> CS_INIT
2012-12-19 14:19:28.167391 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:28.167391 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/sip:[email protected]) Running State Change CS_INIT
2012-12-19 14:19:28.167391 [DEBUG] switch_core_state_machine.c:454 (sofia/gemeinschaft/sip:[email protected]) State INIT
2012-12-19 14:19:28.167391 [DEBUG] mod_sofia.c:86 sofia/gemeinschaft/sip:[email protected] SOFIA INIT
2012-12-19 14:19:28.167391 [DEBUG] sofia_glue.c:2647 Local SDP:
v=0
o=FreeSWITCH 1355894122 1355894123 IN IP4 192.168.6.60
s=FreeSWITCH
c=IN IP4 192.168.6.60
t=0 0
m=audio 29046 RTP/AVP 8 9 0 3 101 13
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv

2012-12-19 14:19:28.167391 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:28.167391 [DEBUG] mod_sofia.c:126 (sofia/gemeinschaft/sip:[email protected]) State Change CS_INIT -> CS_ROUTING
2012-12-19 14:19:28.167391 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:28.167391 [DEBUG] switch_core_state_machine.c:454 (sofia/gemeinschaft/sip:[email protected]) State INIT going to sleep
2012-12-19 14:19:28.167391 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/sip:[email protected]) Running State Change CS_ROUTING
2012-12-19 14:19:28.167391 [DEBUG] switch_channel.c:2003 (sofia/gemeinschaft/sip:[email protected]) Callstate Change DOWN -> RINGING
2012-12-19 14:19:28.167391 [DEBUG] switch_core_state_machine.c:470 (sofia/gemeinschaft/sip:[email protected]) State ROUTING
2012-12-19 14:19:28.167391 [DEBUG] mod_sofia.c:149 sofia/gemeinschaft/sip:[email protected] SOFIA ROUTING
2012-12-19 14:19:28.167391 [DEBUG] switch_ivr_originate.c:67 (sofia/gemeinschaft/sip:[email protected]) State Change CS_ROUTING -> CS_CONSUME_MEDIA
2012-12-19 14:19:28.167391 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:28.167391 [DEBUG] switch_core_state_machine.c:470 (sofia/gemeinschaft/sip:[email protected]) State ROUTING going to sleep
2012-12-19 14:19:28.167391 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/sip:[email protected]) Running State Change CS_CONSUME_MEDIA
2012-12-19 14:19:28.167391 [DEBUG] switch_core_state_machine.c:489 (sofia/gemeinschaft/sip:[email protected]) State CONSUME_MEDIA
2012-12-19 14:19:28.167391 [DEBUG] switch_core_state_machine.c:489 (sofia/gemeinschaft/sip:[email protected]) State CONSUME_MEDIA going to sleep
2012-12-19 14:19:28.167391 [DEBUG] sofia.c:5599 Channel sofia/gemeinschaft/sip:[email protected] entering state [calling][0]
2012-12-19 14:19:28.167391 [INFO] switch_cpp.cpp:1232 #E# [862b3e43-a824-44af-ab4f-9f76fd35c4c6] PRESENCE_OUTBOUND: account: 7c9f585998cc343345b6, state: progressing, caller: 20
2012-12-19 14:19:28.167391 [DEBUG] switch_cpp.cpp:1232 #E# PRESENCE - account: [email protected], state: early, direction: outbound, uid: 862b3e43-a824-44af-ab4f-9f76fd35c4c6
2012-12-19 14:19:31.346489 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:31.346489 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:31.346489 [DEBUG] sofia.c:5599 Channel sofia/gemeinschaft/sip:[email protected] entering state [proceeding][180]
2012-12-19 14:19:31.346489 [NOTICE] sofia.c:5691 Ring-Ready sofia/gemeinschaft/sip:[email protected]!
2012-12-19 14:19:31.355636 [INFO] switch_ivr_originate.c:1185 Sending early media
2012-12-19 14:19:31.355636 [DEBUG] sofia_glue.c:3351 AUDIO RTP [sofia/gemeinschaft/[email protected]] 192.168.6.60 port 17400 -> 192.168.6.173 port 49902 codec: 8 ms: 20
2012-12-19 14:19:31.355636 [DEBUG] switch_rtp.c:1940 Starting timer [soft] 160 bytes per 20ms
2012-12-19 14:19:31.355636 [DEBUG] sofia_glue.c:3615 Set 2833 dtmf send payload to 101
2012-12-19 14:19:31.355636 [DEBUG] sofia_glue.c:3621 Set 2833 dtmf receive payload to 101
2012-12-19 14:19:31.355636 [DEBUG] sofia_glue.c:3648 sofia/gemeinschaft/[email protected] Set rtp dtmf delay to 40
2012-12-19 14:19:31.355636 [DEBUG] mod_sofia.c:2819 Ring SDP:
v=0
o=FreeSWITCH 1355905771 1355905772 IN IP4 192.168.6.60
s=FreeSWITCH
c=IN IP4 192.168.6.60
t=0 0
m=audio 17400 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv

2012-12-19 14:19:31.355636 [NOTICE] mod_sofia.c:2822 Pre-Answer sofia/gemeinschaft/[email protected]!
2012-12-19 14:19:31.355636 [DEBUG] switch_channel.c:3136 (sofia/gemeinschaft/[email protected]) Callstate Change RINGING -> EARLY
2012-12-19 14:19:31.355636 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:31.355636 [DEBUG] sofia.c:5599 Channel sofia/gemeinschaft/[email protected] entering state [early][183]
2012-12-19 14:19:31.355636 [DEBUG] switch_core_session.c:830 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:31.355636 [DEBUG] switch_ivr_originate.c:1242 Raw Codec Activation Success L16@8000hz 1 channel 20ms
2012-12-19 14:19:31.355636 [DEBUG] switch_core_codec.c:219 sofia/gemeinschaft/[email protected] Push codec L16:70
2012-12-19 14:19:31.355636 [DEBUG] switch_ivr_originate.c:1305 Play Ringback Tone [%(2000,4000,440.0,480.0)]
2012-12-19 14:19:31.426610 [DEBUG] switch_rtp.c:3659 Correct ip/port confirmed.
2012-12-19 14:19:32.865865 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:32.865865 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:32.875711 [DEBUG] sofia.c:5599 Channel sofia/gemeinschaft/sip:[email protected] entering state [completing][200]
2012-12-19 14:19:32.875711 [DEBUG] sofia.c:5610 Remote SDP:
v=0
o=user 8695088 8695088 IN IP4 192.168.6.30
s=FreeSWITCH
c=IN IP4 192.168.6.30
t=0 0
m=audio 7078 RTP/AVP 9 8 0 101
a=rtpmap:9 G722/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtcp:7079
a=ptime:30

2012-12-19 14:19:32.875711 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:32.875711 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:32.875711 [DEBUG] sofia.c:5599 Channel sofia/gemeinschaft/sip:[email protected] entering state [ready][200]
2012-12-19 14:19:32.875711 [DEBUG] sofia_glue.c:5137 Audio Codec Compare [G722:9:8000:30:64000]/[PCMA:8:8000:20:64000]
2012-12-19 14:19:32.875711 [DEBUG] sofia_glue.c:5137 Audio Codec Compare [PCMA:8:8000:30:64000]/[PCMA:8:8000:20:64000]
2012-12-19 14:19:32.875711 [DEBUG] sofia_glue.c:5194 Substituting codec PCMA@30i@8000h
2012-12-19 14:19:32.875711 [DEBUG] sofia_glue.c:3093 Set Codec sofia/gemeinschaft/sip:[email protected] PCMA/8000 30 ms 240 samples 64000 bits
2012-12-19 14:19:32.875711 [DEBUG] switch_core_codec.c:111 sofia/gemeinschaft/sip:[email protected] Original read codec set to PCMA:8
2012-12-19 14:19:32.875711 [DEBUG] sofia_glue.c:5259 Set 2833 dtmf send payload to 101
2012-12-19 14:19:32.875711 [DEBUG] sofia_glue.c:3351 AUDIO RTP [sofia/gemeinschaft/sip:[email protected]] 192.168.6.60 port 29046 -> 192.168.6.30 port 7078 codec: 8 ms: 30
2012-12-19 14:19:32.875711 [DEBUG] switch_rtp.c:1940 Starting timer [soft] 240 bytes per 30ms
2012-12-19 14:19:32.886904 [DEBUG] sofia_glue.c:3615 Set 2833 dtmf send payload to 101
2012-12-19 14:19:32.886904 [DEBUG] sofia_glue.c:3621 Set 2833 dtmf receive payload to 101
2012-12-19 14:19:32.886904 [DEBUG] sofia_glue.c:3648 sofia/gemeinschaft/sip:[email protected] Set rtp dtmf delay to 40
2012-12-19 14:19:32.886904 [DEBUG] switch_channel.c:3395 (sofia/gemeinschaft/sip:[email protected]) Callstate Change RINGING -> ACTIVE
2012-12-19 14:19:32.886904 [DEBUG] switch_channel.c:3407 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:32.886904 [NOTICE] sofia.c:6328 Channel [sofia/gemeinschaft/sip:[email protected]] has been answered
2012-12-19 14:19:32.886904 [INFO] switch_cpp.cpp:1232 #E# [862b3e43-a824-44af-ab4f-9f76fd35c4c6] PRESENCE_OUTBOUND: account: 7c9f585998cc343345b6, state: active, caller: 20
2012-12-19 14:19:32.886904 [DEBUG] switch_cpp.cpp:1232 #E# [862b3e43-a824-44af-ab4f-9f76fd35c4c6] PRESENCE - retrieve account data - account: 7c9f585998cc343345b6
2012-12-19 14:19:32.886904 [DEBUG] switch_core_codec.c:244 sofia/gemeinschaft/[email protected] Restore previous codec PCMA:8.
2012-12-19 14:19:32.886904 [DEBUG] switch_cpp.cpp:1232 #E# PRESENCE - account: [email protected], state: confirmed, direction: outbound, uid: 862b3e43-a824-44af-ab4f-9f76fd35c4c6
2012-12-19 14:19:32.886904 [DEBUG] mod_sofia.c:856 Local SDP sofia/gemeinschaft/[email protected]:
v=0
o=FreeSWITCH 1355905771 1355905773 IN IP4 192.168.6.60
s=FreeSWITCH
c=IN IP4 192.168.6.60
t=0 0
m=audio 17400 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv

2012-12-19 14:19:32.886904 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:32.886904 [DEBUG] sofia.c:5599 Channel sofia/gemeinschaft/[email protected] entering state [completed][200]
2012-12-19 14:19:32.886904 [DEBUG] switch_core_session.c:830 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:32.886904 [DEBUG] switch_channel.c:3395 (sofia/gemeinschaft/[email protected]) Callstate Change EARLY -> ACTIVE
2012-12-19 14:19:32.886904 [NOTICE] switch_ivr_originate.c:3378 Channel [sofia/gemeinschaft/[email protected]] has been answered
2012-12-19 14:19:32.886904 [DEBUG] switch_ivr_originate.c:3435 Originate Resulted in Success: [sofia/gemeinschaft/sip:[email protected]]
2012-12-19 14:19:32.886904 [DEBUG] switch_ivr_originate.c:3435 Originate Resulted in Success: [sofia/gemeinschaft/sip:[email protected]]
2012-12-19 14:19:32.886904 [DEBUG] switch_cpp.cpp:541 (sofia/gemeinschaft/sip:[email protected]) State Change CS_CONSUME_MEDIA -> CS_SOFT_EXECUTE
2012-12-19 14:19:32.886904 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:32.886904 [INFO] switch_cpp.cpp:1232 #E# [7e316c85-68a7-4b41-a00b-9887a15ebb9b] PRESENCE_INBOUND: account: e91e1047f66f3fbe8cd4, state: active
2012-12-19 14:19:32.895904 [DEBUG] switch_cpp.cpp:1232 #E# PRESENCE - account: [email protected], state: confirmed, direction: inbound, uid: 7e316c85-68a7-4b41-a00b-9887a15ebb9b
2012-12-19 14:19:32.895904 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/sip:[email protected]) Running State Change CS_SOFT_EXECUTE
2012-12-19 14:19:32.895904 [DEBUG] switch_core_state_machine.c:483 (sofia/gemeinschaft/sip:[email protected]) State SOFT_EXECUTE
2012-12-19 14:19:32.895904 [DEBUG] mod_sofia.c:687 SOFIA SOFT_EXECUTE
2012-12-19 14:19:32.895904 [DEBUG] switch_core_state_machine.c:483 (sofia/gemeinschaft/sip:[email protected]) State SOFT_EXECUTE going to sleep
2012-12-19 14:19:32.895904 [DEBUG] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] FORK SESSION_INIT - dial_time: 4
2012-12-19 14:19:32.895904 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] FORK ANSWER - status: SUCCESS, dial_time: 4
2012-12-19 14:19:32.895904 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] FORK 1 BRIDGE - destination: sipaccount=5/@1, number: 21, dial_time: 4
2012-12-19 14:19:32.895904 [DEBUG] switch_ivr_bridge.c:1268 (sofia/gemeinschaft/sip:[email protected]) State Change CS_SOFT_EXECUTE -> CS_CONSUME_MEDIA
2012-12-19 14:19:32.895904 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:32.895904 [DEBUG] mod_sofia.c:1731 sofia/gemeinschaft/sip:[email protected] activate passthru 2833 mode.
2012-12-19 14:19:32.895904 [DEBUG] switch_core_session.c:830 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:32.895904 [DEBUG] mod_sofia.c:1731 sofia/gemeinschaft/[email protected] activate passthru 2833 mode.
2012-12-19 14:19:32.895904 [DEBUG] switch_core_session.c:830 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:32.895904 [DEBUG] switch_ivr_bridge.c:1370 (sofia/gemeinschaft/sip:[email protected]) State Change CS_CONSUME_MEDIA -> CS_EXCHANGE_MEDIA
2012-12-19 14:19:32.895904 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:32.895904 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/sip:[email protected]) Running State Change CS_EXCHANGE_MEDIA
2012-12-19 14:19:32.895904 [DEBUG] switch_core_state_machine.c:480 (sofia/gemeinschaft/sip:[email protected]) State EXCHANGE_MEDIA
2012-12-19 14:19:32.895904 [DEBUG] mod_sofia.c:681 SOFIA EXCHANGE_MEDIA
2012-12-19 14:19:32.907795 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:32.907795 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:32.907795 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:32.925904 [WARNING] mod_sofia.c:1702 Pass 2833 mode may not work on a transcoded call.
2012-12-19 14:19:32.925904 [DEBUG] switch_core_io.c:1174 Engaging Write Buffer at 480 bytes to accommodate 320->480
2012-12-19 14:19:32.925904 [DEBUG] sofia.c:5599 Channel sofia/gemeinschaft/[email protected] entering state [ready][200]
2012-12-19 14:19:32.925904 [DEBUG] switch_core_session.c:892 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:32.925904 [DEBUG] switch_core_session.c:892 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:33.026297 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:47.406499 [DEBUG] switch_core_session.c:975 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:47.426289 [DEBUG] switch_channel.c:2994 (sofia/gemeinschaft/sip:[email protected]) Callstate Change ACTIVE -> HANGUP
2012-12-19 14:19:47.426289 [NOTICE] sofia.c:711 Hangup sofia/gemeinschaft/sip:[email protected] [CS_EXCHANGE_MEDIA] [NORMAL_CLEARING]
2012-12-19 14:19:47.426289 [DEBUG] switch_channel.c:3017 Send signal sofia/gemeinschaft/sip:[email protected] [KILL]
2012-12-19 14:19:47.426289 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:47.426289 [DEBUG] switch_ivr_bridge.c:597 BRIDGE THREAD DONE [sofia/gemeinschaft/sip:[email protected]]
2012-12-19 14:19:47.426289 [DEBUG] switch_ivr_bridge.c:622 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:47.426289 [DEBUG] switch_core_state_machine.c:480 (sofia/gemeinschaft/sip:[email protected]) State EXCHANGE_MEDIA going to sleep
2012-12-19 14:19:47.426289 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/sip:[email protected]) Running State Change CS_HANGUP
2012-12-19 14:19:47.426289 [DEBUG] switch_core_state_machine.c:667 (sofia/gemeinschaft/sip:[email protected]) State HANGUP
2012-12-19 14:19:47.426289 [DEBUG] mod_sofia.c:503 Channel sofia/gemeinschaft/sip:[email protected] hanging up, cause: NORMAL_CLEARING
2012-12-19 14:19:47.426289 [DEBUG] switch_ivr_bridge.c:510 sofia/gemeinschaft/sip:[email protected] ending bridge by request from write function
2012-12-19 14:19:47.426289 [DEBUG] switch_ivr_bridge.c:597 BRIDGE THREAD DONE [sofia/gemeinschaft/[email protected]]
2012-12-19 14:19:47.426289 [DEBUG] switch_ivr_bridge.c:622 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:47.426289 [DEBUG] switch_ivr_bridge.c:1468 sofia/gemeinschaft/sip:[email protected] skip receive message [UNBRIDGE] (channel is hungup already)
2012-12-19 14:19:47.426289 [DEBUG] mod_sofia.c:1809 sofia/gemeinschaft/[email protected] deactivate passthru 2833 mode.
2012-12-19 14:19:47.426289 [DEBUG] switch_core_session.c:830 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:47.426289 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] FORK EXIT - disposition: SUCCESS, cause: NORMAL_CLEARING, code: 200, phrase: OK, dial_time: 19
2012-12-19 14:19:47.426289 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] DIALPLAN end - caller_id: 20 "Julian Pawlowski", destination: sipaccount=5/@1, number: 21, result: 200 OK
EXECUTE sofia/gemeinschaft/[email protected] respond(200 OK)
2012-12-19 14:19:47.426289 [DEBUG] mod_sofia.c:2640 Responding with 200 [OK]
2012-12-19 14:19:47.426289 [WARNING] mod_sofia.c:2701 Cannot respond.
2012-12-19 14:19:47.426289 [DEBUG] switch_core_session.c:830 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:47.426289 [DEBUG] switch_cpp.cpp:635 CoreSession::hangup
2012-12-19 14:19:47.426289 [DEBUG] switch_channel.c:2994 (sofia/gemeinschaft/[email protected]) Callstate Change ACTIVE -> HANGUP
2012-12-19 14:19:47.426289 [NOTICE] switch_cpp.cpp:637 Hangup sofia/gemeinschaft/[email protected] [CS_EXECUTE] [NORMAL_CLEARING]
2012-12-19 14:19:47.426289 [DEBUG] switch_channel.c:3017 Send signal sofia/gemeinschaft/[email protected] [KILL]
2012-12-19 14:19:47.426289 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:47.426289 [INFO] switch_cpp.cpp:1232 ### [7e316c85-68a7-4b41-a00b-9887a15ebb9b] HANGUP_HOOK: hangup
2012-12-19 14:19:47.426289 [DEBUG] switch_cpp.cpp:1007 sofia/gemeinschaft/sip:[email protected] destroy/unlink session from object
2012-12-19 14:19:47.426289 [DEBUG] switch_cpp.cpp:1007 sofia/gemeinschaft/[email protected] destroy/unlink session from object
EXECUTE sofia/gemeinschaft/[email protected] set(script=)
2012-12-19 14:19:47.426289 [DEBUG] switch_core_session.c:2663 sofia/gemeinschaft/[email protected] skip receive message [APPLICATION_EXEC] (channel is hungup already)
2012-12-19 14:19:47.426289 [DEBUG] mod_dptools.c:1344 sofia/gemeinschaft/[email protected] SET [script]=[UNDEF]
2012-12-19 14:19:47.426289 [DEBUG] switch_core_session.c:2678 sofia/gemeinschaft/[email protected] skip receive message [APPLICATION_EXEC_COMPLETE] (channel is hungup already)
2012-12-19 14:19:47.426289 [DEBUG] switch_core_state_machine.c:477 (sofia/gemeinschaft/[email protected]) State EXECUTE going to sleep
2012-12-19 14:19:47.426289 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/[email protected]) Running State Change CS_HANGUP
2012-12-19 14:19:47.426289 [DEBUG] switch_core_state_machine.c:667 (sofia/gemeinschaft/[email protected]) State HANGUP
2012-12-19 14:19:47.426289 [DEBUG] mod_sofia.c:497 sofia/gemeinschaft/[email protected] Overriding SIP cause 480 with 200 from the other leg
2012-12-19 14:19:47.426289 [DEBUG] mod_sofia.c:503 Channel sofia/gemeinschaft/[email protected] hanging up, cause: NORMAL_CLEARING
2012-12-19 14:19:47.435587 [DEBUG] mod_sofia.c:552 Sending BYE to sofia/gemeinschaft/[email protected]
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:48 sofia/gemeinschaft/[email protected] Standard HANGUP, cause: NORMAL_CLEARING
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:667 (sofia/gemeinschaft/[email protected]) State HANGUP going to sleep
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:446 (sofia/gemeinschaft/[email protected]) State Change CS_HANGUP -> CS_REPORTING
2012-12-19 14:19:47.435587 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/[email protected]) Running State Change CS_REPORTING
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:749 (sofia/gemeinschaft/[email protected]) State REPORTING
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:92 sofia/gemeinschaft/[email protected] Standard REPORTING, cause: NORMAL_CLEARING
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:749 (sofia/gemeinschaft/[email protected]) State REPORTING going to sleep
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:440 (sofia/gemeinschaft/[email protected]) State Change CS_REPORTING -> CS_DESTROY
2012-12-19 14:19:47.435587 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/[email protected] [BREAK]
2012-12-19 14:19:47.435587 [DEBUG] switch_core_session.c:1488 Session 28 (sofia/gemeinschaft/[email protected]) Locked, Waiting on external entities
2012-12-19 14:19:47.435587 [NOTICE] switch_core_session.c:1506 Session 28 (sofia/gemeinschaft/[email protected]) Ended
2012-12-19 14:19:47.435587 [NOTICE] switch_core_session.c:1510 Close Channel sofia/gemeinschaft/[email protected] [CS_DESTROY]
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:556 (sofia/gemeinschaft/[email protected]) Callstate Change HANGUP -> DOWN
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:559 (sofia/gemeinschaft/[email protected]) Running State Change CS_DESTROY
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:569 (sofia/gemeinschaft/[email protected]) State DESTROY
2012-12-19 14:19:47.435587 [DEBUG] mod_sofia.c:396 sofia/gemeinschaft/[email protected] SOFIA DESTROY
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:99 sofia/gemeinschaft/[email protected] Standard DESTROY
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:569 (sofia/gemeinschaft/[email protected]) State DESTROY going to sleep
2012-12-19 14:19:47.435587 [INFO] switch_cpp.cpp:1232 #E# [7e316c85-68a7-4b41-a00b-9887a15ebb9b] PRESENCE_INBOUND: account: e91e1047f66f3fbe8cd4, state: idle
2012-12-19 14:19:47.435587 [DEBUG] switch_cpp.cpp:1232 #E# PRESENCE - account: [email protected], state: terminated, direction: inbound, uid: 7e316c85-68a7-4b41-a00b-9887a15ebb9b
2012-12-19 14:19:47.435587 [INFO] switch_cpp.cpp:1232 #E# [7e316c85-68a7-4b41-a00b-9887a15ebb9b] CDR_SAVE - account: "SipAccount"="2", caller: "20" "Julian Pawlowski", callee: "21" "Julian Pawlowski", cause: "NORMAL_CLEARING"
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:48 sofia/gemeinschaft/sip:[email protected] Standard HANGUP, cause: NORMAL_CLEARING
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:667 (sofia/gemeinschaft/sip:[email protected]) State HANGUP going to sleep
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:446 (sofia/gemeinschaft/sip:[email protected]) State Change CS_HANGUP -> CS_REPORTING
2012-12-19 14:19:47.435587 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:415 (sofia/gemeinschaft/sip:[email protected]) Running State Change CS_REPORTING
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:749 (sofia/gemeinschaft/sip:[email protected]) State REPORTING
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:92 sofia/gemeinschaft/sip:[email protected] Standard REPORTING, cause: NORMAL_CLEARING
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:749 (sofia/gemeinschaft/sip:[email protected]) State REPORTING going to sleep
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:440 (sofia/gemeinschaft/sip:[email protected]) State Change CS_REPORTING -> CS_DESTROY
2012-12-19 14:19:47.435587 [DEBUG] switch_core_session.c:1283 Send signal sofia/gemeinschaft/sip:[email protected] [BREAK]
2012-12-19 14:19:47.435587 [DEBUG] switch_core_session.c:1488 Session 29 (sofia/gemeinschaft/sip:[email protected]) Locked, Waiting on external entities
2012-12-19 14:19:47.435587 [NOTICE] switch_core_session.c:1506 Session 29 (sofia/gemeinschaft/sip:[email protected]) Ended
2012-12-19 14:19:47.435587 [NOTICE] switch_core_session.c:1510 Close Channel sofia/gemeinschaft/sip:[email protected] [CS_DESTROY]
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:556 (sofia/gemeinschaft/sip:[email protected]) Callstate Change HANGUP -> DOWN
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:559 (sofia/gemeinschaft/sip:[email protected]) Running State Change CS_DESTROY
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:569 (sofia/gemeinschaft/sip:[email protected]) State DESTROY
2012-12-19 14:19:47.435587 [DEBUG] mod_sofia.c:396 sofia/gemeinschaft/sip:[email protected] SOFIA DESTROY
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:99 sofia/gemeinschaft/sip:[email protected] Standard DESTROY
2012-12-19 14:19:47.435587 [DEBUG] switch_core_state_machine.c:569 (sofia/gemeinschaft/sip:[email protected]) State DESTROY going to sleep
2012-12-19 14:19:47.435587 [INFO] switch_cpp.cpp:1232 #E# [7e316c85-68a7-4b41-a00b-9887a15ebb9b] CALL_HISTORY_SAVE dialed - account: SipAccount=2, caller: "20" "Julian Pawlowski", callee: "21" "Julian Pawlowski", result: "NORMAL_CLEARING"
2012-12-19 14:19:47.435587 [INFO] switch_cpp.cpp:1232 #E# [7e316c85-68a7-4b41-a00b-9887a15ebb9b] CALL_HISTORY_SAVE received - account: sipaccount=5, caller: "20" "Julian Pawlowski", callee: "21" "Julian Pawlowski", result: "NORMAL_CLEARING"
2012-12-19 14:19:47.445770 [INFO] switch_cpp.cpp:1232 #E# [862b3e43-a824-44af-ab4f-9f76fd35c4c6] PRESENCE_OUTBOUND: account: 7c9f585998cc343345b6, state: idle, caller: 20
2012-12-19 14:19:47.445770 [DEBUG] switch_cpp.cpp:1232 #E# PRESENCE - account: [email protected], state: terminated, direction: outbound, uid: 862b3e43-a824-44af-ab4f-9f76fd35c4c6
2012-12-19 14:19:47.445770 [DEBUG] switch_cpp.cpp:1232 #E# [862b3e43-a824-44af-ab4f-9f76fd35c4c6] CDR_SAVE - event: CHANNEL_DESTROY, direction: outbound, save_cdr: false
2012-12-19 14:19:47.445770 [DEBUG] switch_cpp.cpp:1232 #E# [862b3e43-a824-44af-ab4f-9f76fd35c4c6] CALL_HISTORY_SAVE - event: CHANNEL_DESTROY, direction: outbound, save_cdr: false

Conference without MOH

one should be able to set a conference to be silent if I'm the only person in it, not everybody wants to listen to MOH all the time ;-)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.