"""
Save to database.
"""
+ index = self.view_list.currentIndex()
self.view_display.submit()
+ self.view_list.setCurrentIndex(index)
self.getFieldWidget('Add').setEnabled(True)
def __init__(self, parent=None, views=None):
super(ConnectionController, self).__init__(parent, views)
- # We track last selected row because Qt deselects in on submit.
- self.last_row = -1
-
for row in range(self.model.rowCount()):
# Get local IP address and port from the table for each row.
server = http.FreeswitchConfigServer(self)
def connectionChange(self, index):
"""
Restart config server on connection change if necessary.
- """
+ """
current_row = index.row()
if current_row != -1:
- self.last_row = current_row
# Select the new row.
connection_id, _ok = index.model().data(
- index.sibling(index.row(), 0)).toInt()
+ index.sibling(current_row, 0)).toInt()
- # Apply new socket location.
- self.servers[self.last_row].setSocketData(
- *self.getSocketData(self.last_row))
+ # Apply new socket location.
+ self.servers[current_row].setSocketData(
+ *self.getSocketData(current_row))
def objectAdded(self, row, record):
"""
server.startServer()
self.servers.append(server)
- def save(self):
- super(ConnectionController, self).save()
- self.view_list.selectRow(self.last_row)
-
class ConnectionChangeListenerController(BaseController):
"""
Filters table by a new connection ID and stores last connection ID
locally.
"""
- if index.row() != -1:
+ index_row = index.row()
+ if index_row != -1:
+ # Get connection_id field value.
connection_id, _ok = index.model().data(
index.sibling(index.row(), 0)).toInt()
self.connection_id = connection_id
QtCore.QT_TRANSLATE_NOOP('MainWindow', 'Authenticate Calls'),
QtCore.QT_TRANSLATE_NOOP('MainWindow', 'Is Active'))
view_list_fields = 'Destination Match',
+ view_display_fields_hidden = 'ID', 'Connection ID', 'Endpoint ID'
relations = (
('domain_id', 'Domain ID', 'domain', 'host_name'),
- ('endpoint_id', 'Endpoint ID', 'endpoint', 'user_id'))
+# ('endpoint_id', 'Endpoint ID', 'endpoint', 'user_id'),
+ )
def objectAdded(self, row, record):
record.setValue(
for generator in self.parent.generators:
if generator.canHandle(self.headers):
self.state += 1
- return generator.generateConfig(self.headers)
-
+ print generator.generateConfig(self.headers)
+ else:
+ print 'No generator found'
+
class FreeswitchConfigGenerator(object):
"X-Language: fi_FI\n"
#. ts-context MainWindow
-#: src/ipypbx/ui.py:435
+#: src/ipypbx/ui.py:429
#, fuzzy
msgid "IPyPBX"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
#, fuzzy
msgid "Name"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:206
+#: src/ipypbx/controllers.py:215
#, fuzzy
msgid "Local Port"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:206
+#: src/ipypbx/controllers.py:215
#, fuzzy
msgid "Freeswitch Port"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:206
+#: src/ipypbx/controllers.py:215
#, fuzzy
msgid "Freeswitch IP Address"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:485
+#: src/ipypbx/ui.py:479
#, fuzzy
msgid "Add"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:486
+#: src/ipypbx/ui.py:480
#, fuzzy
msgid "Save"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:443
+#: src/ipypbx/ui.py:437
#, fuzzy
msgid "Connections"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:306
+#: src/ipypbx/controllers.py:324
#, fuzzy
msgid "External RTP IP"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:306
+#: src/ipypbx/controllers.py:324
#, fuzzy
msgid "External SIP IP"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:306
+#: src/ipypbx/controllers.py:324
#, fuzzy
msgid "RTP IP"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:306
+#: src/ipypbx/controllers.py:324
#, fuzzy
msgid "SIP IP"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:306
+#: src/ipypbx/controllers.py:324
#, fuzzy
msgid "SIP Port"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:306
+#: src/ipypbx/controllers.py:324
#, fuzzy
msgid "Accept Blind Registration"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
#, fuzzy
msgid "Authenticate Calls"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
#, fuzzy
msgid "Is Active"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:455
+#: src/ipypbx/ui.py:449
#, fuzzy
msgid "SIP Profiles"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:325
+#: src/ipypbx/controllers.py:343
#, fuzzy
msgid "Host Name"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:468
+#: src/ipypbx/ui.py:462
#, fuzzy
msgid "SIP Profile"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:461
+#: src/ipypbx/ui.py:455
#, fuzzy
msgid "Domains"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
#, fuzzy
msgid "Username"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:361
+#: src/ipypbx/controllers.py:379
#, fuzzy
msgid "Password"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
#, fuzzy
msgid "Realm"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
#, fuzzy
msgid "From Domain"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
#, fuzzy
msgid "Expire In Seconds"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
#, fuzzy
msgid "Retry In Seconds"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:473
+#: src/ipypbx/ui.py:467
#, fuzzy
msgid "Caller ID In \"From\" Field"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:477
+#: src/ipypbx/ui.py:471
#, fuzzy
msgid "Gateways"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:361
+#: src/ipypbx/controllers.py:379
#, fuzzy
msgid "User ID"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:489
+#: src/ipypbx/ui.py:483
#, fuzzy
msgid "Domain"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:484
+#: src/ipypbx/ui.py:478
#, fuzzy
msgid "Endpoints"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
#, fuzzy
msgid "XML Dialplan"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
#, fuzzy
msgid "Destination Match"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:490
-#, fuzzy
-msgid "Endpoint"
-msgstr ""
-
-#. ts-context MainWindow
-#: src/ipypbx/ui.py:493
+#: src/ipypbx/ui.py:486
#, fuzzy
msgid "Extensions"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
#, fuzzy
msgid "ID"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:206
+#: src/ipypbx/controllers.py:215
#, fuzzy
msgid "Local IP Address"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
#, fuzzy
msgid "Connection ID"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
#, fuzzy
msgid "SIP Profile ID"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
#, fuzzy
msgid "Caller ID In From Field"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
#, fuzzy
msgid "Domain ID"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
#, fuzzy
msgid "Endpoint ID"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
#, fuzzy
msgid "Extension"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:476
+#: src/ipypbx/ui.py:470
#, fuzzy
msgid "3600"
msgstr ""
<context>
<name>MainWindow</name>
<message>
- <location filename="src/ipypbx/ui.py" line="435"/>
+ <location filename="src/ipypbx/ui.py" line="429"/>
<source>IPyPBX</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="206"/>
+ <location filename="src/ipypbx/controllers.py" line="215"/>
<source>Local Port</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="206"/>
+ <location filename="src/ipypbx/controllers.py" line="215"/>
<source>Freeswitch Port</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="206"/>
+ <location filename="src/ipypbx/controllers.py" line="215"/>
<source>Freeswitch IP Address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="485"/>
+ <location filename="src/ipypbx/ui.py" line="479"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="486"/>
+ <location filename="src/ipypbx/ui.py" line="480"/>
<source>Save</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="443"/>
+ <location filename="src/ipypbx/ui.py" line="437"/>
<source>Connections</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="306"/>
+ <location filename="src/ipypbx/controllers.py" line="324"/>
<source>External RTP IP</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="306"/>
+ <location filename="src/ipypbx/controllers.py" line="324"/>
<source>External SIP IP</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="306"/>
+ <location filename="src/ipypbx/controllers.py" line="324"/>
<source>RTP IP</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="306"/>
+ <location filename="src/ipypbx/controllers.py" line="324"/>
<source>SIP IP</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="306"/>
+ <location filename="src/ipypbx/controllers.py" line="324"/>
<source>SIP Port</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="306"/>
+ <location filename="src/ipypbx/controllers.py" line="324"/>
<source>Accept Blind Registration</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>Authenticate Calls</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>Is Active</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="455"/>
+ <location filename="src/ipypbx/ui.py" line="449"/>
<source>SIP Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="325"/>
+ <location filename="src/ipypbx/controllers.py" line="343"/>
<source>Host Name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="468"/>
+ <location filename="src/ipypbx/ui.py" line="462"/>
<source>SIP Profile</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="461"/>
+ <location filename="src/ipypbx/ui.py" line="455"/>
<source>Domains</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="361"/>
+ <location filename="src/ipypbx/controllers.py" line="379"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Realm</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>From Domain</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Expire In Seconds</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Retry In Seconds</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="473"/>
+ <location filename="src/ipypbx/ui.py" line="467"/>
<source>Caller ID In "From" Field</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="477"/>
+ <location filename="src/ipypbx/ui.py" line="471"/>
<source>Gateways</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="361"/>
+ <location filename="src/ipypbx/controllers.py" line="379"/>
<source>User ID</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="489"/>
+ <location filename="src/ipypbx/ui.py" line="483"/>
<source>Domain</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="484"/>
+ <location filename="src/ipypbx/ui.py" line="478"/>
<source>Endpoints</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>XML Dialplan</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>Destination Match</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="490"/>
- <source>Endpoint</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="src/ipypbx/ui.py" line="493"/>
+ <location filename="src/ipypbx/ui.py" line="486"/>
<source>Extensions</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>ID</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="206"/>
+ <location filename="src/ipypbx/controllers.py" line="215"/>
<source>Local IP Address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>Connection ID</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>SIP Profile ID</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Caller ID In From Field</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>Domain ID</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>Endpoint ID</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Extension</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="476"/>
+ <location filename="src/ipypbx/ui.py" line="470"/>
<source>3600</source>
<translation type="unfinished"></translation>
</message>
"X-Language: ru_RU\n"
#. ts-context MainWindow
-#: src/ipypbx/ui.py:435
+#: src/ipypbx/ui.py:429
msgid "IPyPBX"
msgstr "IPyPBX"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
msgid "Name"
msgstr "Имя"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:206
+#: src/ipypbx/controllers.py:215
msgid "Local Port"
msgstr "Локальный порт"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:206
+#: src/ipypbx/controllers.py:215
msgid "Freeswitch Port"
msgstr "Порт Freeswitch"
#~ msgstr "Локальный IP-адрес"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:206
+#: src/ipypbx/controllers.py:215
msgid "Freeswitch IP Address"
msgstr "IP-адрес Freeswitch"
#. ts-context MainWindow
-#: src/ipypbx/ui.py:485
+#: src/ipypbx/ui.py:479
msgid "Add"
msgstr "Добавить"
#. ts-context MainWindow
-#: src/ipypbx/ui.py:486
+#: src/ipypbx/ui.py:480
msgid "Save"
msgstr "Сохранить"
#. ts-context MainWindow
-#: src/ipypbx/ui.py:443
+#: src/ipypbx/ui.py:437
msgid "Connections"
msgstr "Подключения"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:306
+#: src/ipypbx/controllers.py:324
msgid "External RTP IP"
msgstr "Внешний RTP IP"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:306
+#: src/ipypbx/controllers.py:324
msgid "External SIP IP"
msgstr "Внешний SIP IP"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:306
+#: src/ipypbx/controllers.py:324
msgid "RTP IP"
msgstr "RTP IP"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:306
+#: src/ipypbx/controllers.py:324
msgid "SIP IP"
msgstr "SIP IP"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:306
+#: src/ipypbx/controllers.py:324
msgid "SIP Port"
msgstr "Порт SIP"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:306
+#: src/ipypbx/controllers.py:324
msgid "Accept Blind Registration"
msgstr "Безусловная регистрация"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
msgid "Authenticate Calls"
msgstr "Аутентифицировать звонки"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
msgid "Is Active"
msgstr "Активен"
#. ts-context MainWindow
-#: src/ipypbx/ui.py:455
+#: src/ipypbx/ui.py:449
msgid "SIP Profiles"
msgstr "Профили SIP"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:325
+#: src/ipypbx/controllers.py:343
msgid "Host Name"
msgstr "Имя хоста"
#. ts-context MainWindow
-#: src/ipypbx/ui.py:468
+#: src/ipypbx/ui.py:462
msgid "SIP Profile"
msgstr "Профиль SIP"
#. ts-context MainWindow
-#: src/ipypbx/ui.py:461
+#: src/ipypbx/ui.py:455
msgid "Domains"
msgstr "Домены"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
msgid "Username"
msgstr "Имя пользователя"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:361
+#: src/ipypbx/controllers.py:379
msgid "Password"
msgstr "Пароль"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
msgid "Realm"
msgstr "Realm"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
msgid "From Domain"
msgstr "Домен в поле \"From\""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
msgid "Expire In Seconds"
msgstr "Время регистрации в секундах"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
msgid "Retry In Seconds"
msgstr "Время повтора в секундах"
#. ts-context MainWindow
-#: src/ipypbx/ui.py:473
+#: src/ipypbx/ui.py:467
msgid "Caller ID In \"From\" Field"
msgstr "Имя абонента в поле \"From\""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:477
+#: src/ipypbx/ui.py:471
msgid "Gateways"
msgstr "Сетевой шлюз"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:361
+#: src/ipypbx/controllers.py:379
msgid "User ID"
msgstr "Идентификатор пользователя"
#. ts-context MainWindow
-#: src/ipypbx/ui.py:489
+#: src/ipypbx/ui.py:483
msgid "Domain"
msgstr "Домен"
#. ts-context MainWindow
-#: src/ipypbx/ui.py:484
+#: src/ipypbx/ui.py:478
msgid "Endpoints"
msgstr "Конечное оборудование"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
msgid "XML Dialplan"
msgstr "План нумерации XML"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
msgid "Destination Match"
msgstr "Совпадение направления"
#. ts-context MainWindow
#: src/ipypbx/ui.py:490
-msgid "Endpoint"
-msgstr "Конечное оборудование"
+#~ msgid "Endpoint"
+#~ msgstr "Конечное оборудование"
#. ts-context MainWindow
-#: src/ipypbx/ui.py:493
+#: src/ipypbx/ui.py:486
msgid "Extensions"
msgstr "Номера"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
msgid "ID"
msgstr "Идентификатор"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:206
+#: src/ipypbx/controllers.py:215
msgid "Local IP Address"
msgstr "Локальный IP-адрес"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
msgid "Connection ID"
msgstr "Идентификатор соединения"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
msgid "SIP Profile ID"
msgstr "Идентификатор SIP-профиля"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
msgid "Caller ID In From Field"
msgstr "Идентификатор вызывающего абонента в поле \"От\""
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
msgid "Domain ID"
msgstr "Идентификатор домена"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:376
+#: src/ipypbx/controllers.py:394
msgid "Endpoint ID"
msgstr "Идентификатор конечного оборудования"
#. ts-context MainWindow
-#: src/ipypbx/controllers.py:339
+#: src/ipypbx/controllers.py:357
#, fuzzy
msgid "Extension"
msgstr ""
#. ts-context MainWindow
-#: src/ipypbx/ui.py:476
+#: src/ipypbx/ui.py:470
#, fuzzy
msgid "3600"
msgstr ""
<context>
<name>MainWindow</name>
<message>
- <location filename="src/ipypbx/ui.py" line="435"/>
+ <location filename="src/ipypbx/ui.py" line="429"/>
<source>IPyPBX</source>
<translation>IPyPBX</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="206"/>
+ <location filename="src/ipypbx/controllers.py" line="215"/>
<source>Local Port</source>
<translation>Локальный порт</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="206"/>
+ <location filename="src/ipypbx/controllers.py" line="215"/>
<source>Freeswitch Port</source>
<translation>Порт Freeswitch</translation>
</message>
<translation type="obsolete">Локальный IP-адрес</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="206"/>
+ <location filename="src/ipypbx/controllers.py" line="215"/>
<source>Freeswitch IP Address</source>
<translation>IP-адрес Freeswitch</translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="485"/>
+ <location filename="src/ipypbx/ui.py" line="479"/>
<source>Add</source>
<translation>Добавить</translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="486"/>
+ <location filename="src/ipypbx/ui.py" line="480"/>
<source>Save</source>
<translation>Сохранить</translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="443"/>
+ <location filename="src/ipypbx/ui.py" line="437"/>
<source>Connections</source>
<translation>Подключения</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="306"/>
+ <location filename="src/ipypbx/controllers.py" line="324"/>
<source>External RTP IP</source>
<translation>Внешний RTP IP</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="306"/>
+ <location filename="src/ipypbx/controllers.py" line="324"/>
<source>External SIP IP</source>
<translation>Внешний SIP IP</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="306"/>
+ <location filename="src/ipypbx/controllers.py" line="324"/>
<source>RTP IP</source>
<translation>RTP IP</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="306"/>
+ <location filename="src/ipypbx/controllers.py" line="324"/>
<source>SIP IP</source>
<translation>SIP IP</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="306"/>
+ <location filename="src/ipypbx/controllers.py" line="324"/>
<source>SIP Port</source>
<translation>Порт SIP</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="306"/>
+ <location filename="src/ipypbx/controllers.py" line="324"/>
<source>Accept Blind Registration</source>
<translation>Безусловная регистрация</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>Authenticate Calls</source>
<translation>Аутентифицировать звонки</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>Is Active</source>
<translation>Активен</translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="455"/>
+ <location filename="src/ipypbx/ui.py" line="449"/>
<source>SIP Profiles</source>
<translation>Профили SIP</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="325"/>
+ <location filename="src/ipypbx/controllers.py" line="343"/>
<source>Host Name</source>
<translation>Имя хоста</translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="468"/>
+ <location filename="src/ipypbx/ui.py" line="462"/>
<source>SIP Profile</source>
<translation>Профиль SIP</translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="461"/>
+ <location filename="src/ipypbx/ui.py" line="455"/>
<source>Domains</source>
<translation>Домены</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Username</source>
<translation>Имя пользователя</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="361"/>
+ <location filename="src/ipypbx/controllers.py" line="379"/>
<source>Password</source>
<translation>Пароль</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Realm</source>
<translation>Realm</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>From Domain</source>
<translation>Домен в поле "From"</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Expire In Seconds</source>
<translation>Время регистрации в секундах</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Retry In Seconds</source>
<translation>Время повтора в секундах</translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="473"/>
+ <location filename="src/ipypbx/ui.py" line="467"/>
<source>Caller ID In "From" Field</source>
<translation>Имя абонента в поле "From"</translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="477"/>
+ <location filename="src/ipypbx/ui.py" line="471"/>
<source>Gateways</source>
<translation>Сетевой шлюз</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="361"/>
+ <location filename="src/ipypbx/controllers.py" line="379"/>
<source>User ID</source>
<translation>Идентификатор пользователя</translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="489"/>
+ <location filename="src/ipypbx/ui.py" line="483"/>
<source>Domain</source>
<translation>Домен</translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="484"/>
+ <location filename="src/ipypbx/ui.py" line="478"/>
<source>Endpoints</source>
<translation>Конечное оборудование</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>XML Dialplan</source>
<translation>План нумерации XML</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>Destination Match</source>
<translation>Совпадение направления</translation>
</message>
<message>
<location filename="src/ipypbx/ui.py" line="490"/>
<source>Endpoint</source>
- <translation>Конечное оборудование</translation>
+ <translation type="obsolete">Конечное оборудование</translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="493"/>
+ <location filename="src/ipypbx/ui.py" line="486"/>
<source>Extensions</source>
<translation>Номера</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>ID</source>
<translation>Идентификатор</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="206"/>
+ <location filename="src/ipypbx/controllers.py" line="215"/>
<source>Local IP Address</source>
<translation>Локальный IP-адрес</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>Connection ID</source>
<translation>Идентификатор соединения</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>SIP Profile ID</source>
<translation>Идентификатор SIP-профиля</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Caller ID In From Field</source>
<translation>Идентификатор вызывающего абонента в поле "От"</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>Domain ID</source>
<translation>Идентификатор домена</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="376"/>
+ <location filename="src/ipypbx/controllers.py" line="394"/>
<source>Endpoint ID</source>
<translation>Идентификатор конечного оборудования</translation>
</message>
<message>
- <location filename="src/ipypbx/controllers.py" line="339"/>
+ <location filename="src/ipypbx/controllers.py" line="357"/>
<source>Extension</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/ipypbx/ui.py" line="476"/>
+ <location filename="src/ipypbx/ui.py" line="470"/>
<source>3600</source>
<translation type="unfinished"></translation>
</message>
# Form implementation generated from reading ui file 'ui/layout.ui'
#
-# Created: Thu Apr 15 18:22:21 2010
+# Created: Thu Apr 15 21:54:09 2010
# by: PyQt4 UI code generator 4.7.2
#
# WARNING! All changes made in this file will be lost!
self.extensionSave.setObjectName("extensionSave")
self.gridLayout_4.addWidget(self.extensionSave, 1, 1, 1, 1)
self.formLayout_4 = QtGui.QFormLayout()
+ self.formLayout_4.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow)
self.formLayout_4.setObjectName("formLayout_4")
- self.label_3 = QtGui.QLabel(self.gridLayoutWidget_5)
- self.label_3.setObjectName("label_3")
- self.formLayout_4.setWidget(1, QtGui.QFormLayout.LabelRole, self.label_3)
self.label_28 = QtGui.QLabel(self.gridLayoutWidget_5)
self.label_28.setObjectName("label_28")
self.formLayout_4.setWidget(0, QtGui.QFormLayout.LabelRole, self.label_28)
- self.label_29 = QtGui.QLabel(self.gridLayoutWidget_5)
- self.label_29.setObjectName("label_29")
- self.formLayout_4.setWidget(2, QtGui.QFormLayout.LabelRole, self.label_29)
- self.label_30 = QtGui.QLabel(self.gridLayoutWidget_5)
- self.label_30.setObjectName("label_30")
- self.formLayout_4.setWidget(3, QtGui.QFormLayout.LabelRole, self.label_30)
- self.extensionIsActive = QtGui.QCheckBox(self.gridLayoutWidget_5)
- self.extensionIsActive.setChecked(True)
- self.extensionIsActive.setObjectName("extensionIsActive")
- self.formLayout_4.setWidget(4, QtGui.QFormLayout.LabelRole, self.extensionIsActive)
- self.extensionAuthenticateCalls = QtGui.QCheckBox(self.gridLayoutWidget_5)
- self.extensionAuthenticateCalls.setChecked(True)
- self.extensionAuthenticateCalls.setObjectName("extensionAuthenticateCalls")
- self.formLayout_4.setWidget(4, QtGui.QFormLayout.FieldRole, self.extensionAuthenticateCalls)
self.extensionDestinationMatch = QtGui.QLineEdit(self.gridLayoutWidget_5)
self.extensionDestinationMatch.setObjectName("extensionDestinationMatch")
self.formLayout_4.setWidget(0, QtGui.QFormLayout.FieldRole, self.extensionDestinationMatch)
- self.extensionDomainId = QtGui.QComboBox(self.gridLayoutWidget_5)
- self.extensionDomainId.setObjectName("extensionDomainId")
- self.formLayout_4.setWidget(2, QtGui.QFormLayout.FieldRole, self.extensionDomainId)
- self.extensionEndpointId = QtGui.QComboBox(self.gridLayoutWidget_5)
- self.extensionEndpointId.setObjectName("extensionEndpointId")
- self.formLayout_4.setWidget(3, QtGui.QFormLayout.FieldRole, self.extensionEndpointId)
+ self.label_3 = QtGui.QLabel(self.gridLayoutWidget_5)
+ self.label_3.setObjectName("label_3")
+ self.formLayout_4.setWidget(1, QtGui.QFormLayout.LabelRole, self.label_3)
self.extensionXmlDialplan = QtGui.QPlainTextEdit(self.gridLayoutWidget_5)
self.extensionXmlDialplan.setWhatsThis("")
self.extensionXmlDialplan.setPlainText(" <action application=\"echo\" data=\"\"/>\n"
"")
self.extensionXmlDialplan.setObjectName("extensionXmlDialplan")
self.formLayout_4.setWidget(1, QtGui.QFormLayout.FieldRole, self.extensionXmlDialplan)
+ self.label_29 = QtGui.QLabel(self.gridLayoutWidget_5)
+ self.label_29.setObjectName("label_29")
+ self.formLayout_4.setWidget(2, QtGui.QFormLayout.LabelRole, self.label_29)
+ self.extensionDomainId = QtGui.QComboBox(self.gridLayoutWidget_5)
+ self.extensionDomainId.setObjectName("extensionDomainId")
+ self.formLayout_4.setWidget(2, QtGui.QFormLayout.FieldRole, self.extensionDomainId)
+ self.extensionIsActive = QtGui.QCheckBox(self.gridLayoutWidget_5)
+ self.extensionIsActive.setChecked(True)
+ self.extensionIsActive.setObjectName("extensionIsActive")
+ self.formLayout_4.setWidget(3, QtGui.QFormLayout.LabelRole, self.extensionIsActive)
+ self.extensionAuthenticateCalls = QtGui.QCheckBox(self.gridLayoutWidget_5)
+ self.extensionAuthenticateCalls.setChecked(True)
+ self.extensionAuthenticateCalls.setObjectName("extensionAuthenticateCalls")
+ self.formLayout_4.setWidget(3, QtGui.QFormLayout.FieldRole, self.extensionAuthenticateCalls)
self.gridLayout_4.addLayout(self.formLayout_4, 0, 1, 1, 1)
self.extensionViewList = QtGui.QTableView(self.gridLayoutWidget_5)
self.extensionViewList.setObjectName("extensionViewList")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
- self.tabWidget.setCurrentIndex(5)
+ self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
MainWindow.setTabOrder(self.tabWidget, self.connectionViewList)
MainWindow.setTabOrder(self.connectionViewList, self.connectionName)
MainWindow.setTabOrder(self.endpointSave, self.extensionViewList)
MainWindow.setTabOrder(self.extensionViewList, self.extensionDestinationMatch)
MainWindow.setTabOrder(self.extensionDestinationMatch, self.extensionDomainId)
- MainWindow.setTabOrder(self.extensionDomainId, self.extensionEndpointId)
- MainWindow.setTabOrder(self.extensionEndpointId, self.extensionAuthenticateCalls)
+ MainWindow.setTabOrder(self.extensionDomainId, self.extensionAuthenticateCalls)
MainWindow.setTabOrder(self.extensionAuthenticateCalls, self.extensionIsActive)
MainWindow.setTabOrder(self.extensionIsActive, self.extensionAdd)
MainWindow.setTabOrder(self.extensionAdd, self.extensionSave)
self.tabWidget.setTabText(self.tabWidget.indexOf(self.endpointsTab), QtGui.QApplication.translate("MainWindow", "Endpoints", None, QtGui.QApplication.UnicodeUTF8))
self.extensionAdd.setText(QtGui.QApplication.translate("MainWindow", "Add", None, QtGui.QApplication.UnicodeUTF8))
self.extensionSave.setText(QtGui.QApplication.translate("MainWindow", "Save", None, QtGui.QApplication.UnicodeUTF8))
- self.label_3.setText(QtGui.QApplication.translate("MainWindow", "XML Dialplan", None, QtGui.QApplication.UnicodeUTF8))
self.label_28.setText(QtGui.QApplication.translate("MainWindow", "Destination Match", None, QtGui.QApplication.UnicodeUTF8))
+ self.label_3.setText(QtGui.QApplication.translate("MainWindow", "XML Dialplan", None, QtGui.QApplication.UnicodeUTF8))
self.label_29.setText(QtGui.QApplication.translate("MainWindow", "Domain", None, QtGui.QApplication.UnicodeUTF8))
- self.label_30.setText(QtGui.QApplication.translate("MainWindow", "Endpoint", None, QtGui.QApplication.UnicodeUTF8))
self.extensionIsActive.setText(QtGui.QApplication.translate("MainWindow", "Is Active", None, QtGui.QApplication.UnicodeUTF8))
self.extensionAuthenticateCalls.setText(QtGui.QApplication.translate("MainWindow", "Authenticate Calls", None, QtGui.QApplication.UnicodeUTF8))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.extensionsTab), QtGui.QApplication.translate("MainWindow", "Extensions", None, QtGui.QApplication.UnicodeUTF8))
</size>
</property>
<property name="currentIndex">
- <number>5</number>
+ <number>0</number>
</property>
<widget class="QWidget" name="connectionsTab">
<attribute name="title">
</item>
<item row="0" column="1">
<layout class="QFormLayout" name="formLayout_4">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_28">
+ <property name="text">
+ <string>Destination Match</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="extensionDestinationMatch"/>
+ </item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
</property>
</widget>
</item>
- <item row="0" column="0">
- <widget class="QLabel" name="label_28">
- <property name="text">
- <string>Destination Match</string>
+ <item row="1" column="1">
+ <widget class="QPlainTextEdit" name="extensionXmlDialplan">
+ <property name="whatsThis">
+ <string/>
+ </property>
+ <property name="plainText">
+ <string notr="true"> <action application="echo" data=""/>
+</string>
</property>
</widget>
</item>
</property>
</widget>
</item>
- <item row="3" column="0">
- <widget class="QLabel" name="label_30">
- <property name="text">
- <string>Endpoint</string>
- </property>
- </widget>
+ <item row="2" column="1">
+ <widget class="QComboBox" name="extensionDomainId"/>
</item>
- <item row="4" column="0">
+ <item row="3" column="0">
<widget class="QCheckBox" name="extensionIsActive">
<property name="text">
<string>Is Active</string>
</property>
</widget>
</item>
- <item row="4" column="1">
+ <item row="3" column="1">
<widget class="QCheckBox" name="extensionAuthenticateCalls">
<property name="text">
<string>Authenticate Calls</string>
</property>
</widget>
</item>
- <item row="0" column="1">
- <widget class="QLineEdit" name="extensionDestinationMatch"/>
- </item>
- <item row="2" column="1">
- <widget class="QComboBox" name="extensionDomainId"/>
- </item>
- <item row="3" column="1">
- <widget class="QComboBox" name="extensionEndpointId"/>
- </item>
- <item row="1" column="1">
- <widget class="QPlainTextEdit" name="extensionXmlDialplan">
- <property name="whatsThis">
- <string/>
- </property>
- <property name="plainText">
- <string notr="true"> <action application="echo" data=""/>
-</string>
- </property>
- </widget>
- </item>
</layout>
</item>
<item row="0" column="0">
<tabstop>extensionViewList</tabstop>
<tabstop>extensionDestinationMatch</tabstop>
<tabstop>extensionDomainId</tabstop>
- <tabstop>extensionEndpointId</tabstop>
<tabstop>extensionAuthenticateCalls</tabstop>
<tabstop>extensionIsActive</tabstop>
<tabstop>extensionAdd</tabstop>