Merge pull request #185 from outis1one/claude/asterisk-digital-ocean-w22kk8
Claude/asterisk digital ocean w22kk8
This commit is contained in:
+11
-7
@@ -479,15 +479,19 @@ for i in $(seq 1 60); do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# Verify PJSIP transports are listening
|
||||
# Verify PJSIP transports are listening. res_pjsip finishes binding its
|
||||
# transports a beat after "core show version" first responds, so a single
|
||||
# immediate check can catch it mid-startup and misreport TLS as down even
|
||||
# though it comes up a second later — poll for a few seconds before giving up.
|
||||
tls_ok=false
|
||||
udp_ok=false
|
||||
if asterisk -rx "pjsip show transports" 2>/dev/null | grep -q "transport-tls"; then
|
||||
tls_ok=true
|
||||
fi
|
||||
if asterisk -rx "pjsip show transports" 2>/dev/null | grep -q "transport-udp"; then
|
||||
udp_ok=true
|
||||
fi
|
||||
for i in $(seq 1 10); do
|
||||
transports_output=$(asterisk -rx "pjsip show transports" 2>/dev/null)
|
||||
echo "$transports_output" | grep -q "transport-tls" && tls_ok=true
|
||||
echo "$transports_output" | grep -q "transport-udp" && udp_ok=true
|
||||
$tls_ok && $udp_ok && break
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# Check if port 5061 is actually bound
|
||||
tls_listen=""
|
||||
|
||||
+14
@@ -4340,6 +4340,7 @@ def delete_device(extension):
|
||||
with open(PJSIP_CONF, 'w') as f:
|
||||
f.writelines(new_lines)
|
||||
subprocess.run(['asterisk', '-rx', 'pjsip reload'], capture_output=True)
|
||||
subprocess.run(['/usr/local/bin/easy-asterisk', '--rebuild-dialplan'], capture_output=True)
|
||||
return True, "Device deleted"
|
||||
return False, "Device not found"
|
||||
|
||||
@@ -4413,6 +4414,7 @@ def rename_device(extension, new_name):
|
||||
with open(PJSIP_CONF, 'w') as f:
|
||||
f.writelines(new_lines)
|
||||
subprocess.run(['asterisk', '-rx', 'pjsip reload'], capture_output=True)
|
||||
subprocess.run(['/usr/local/bin/easy-asterisk', '--rebuild-dialplan'], capture_output=True)
|
||||
return True, "Device renamed"
|
||||
return False, "Device not found"
|
||||
|
||||
@@ -4525,6 +4527,7 @@ def change_device_category(extension, new_category):
|
||||
with open(PJSIP_CONF, 'w') as f:
|
||||
f.writelines(new_lines)
|
||||
subprocess.run(['asterisk', '-rx', 'pjsip reload'], capture_output=True)
|
||||
subprocess.run(['/usr/local/bin/easy-asterisk', '--rebuild-dialplan'], capture_output=True)
|
||||
return True, "Category changed"
|
||||
return False, "Device not found"
|
||||
|
||||
@@ -4774,6 +4777,7 @@ qualify_frequency=30
|
||||
|
||||
subprocess.run(['asterisk', '-rx', 'pjsip reload'], capture_output=True)
|
||||
subprocess.run(['chown', 'asterisk:asterisk', PJSIP_CONF], capture_output=True)
|
||||
subprocess.run(['/usr/local/bin/easy-asterisk', '--rebuild-dialplan'], capture_output=True)
|
||||
|
||||
return True, {'extension': extension, 'password': password, 'name': name}
|
||||
|
||||
@@ -6926,4 +6930,14 @@ main() {
|
||||
show_main_menu
|
||||
}
|
||||
|
||||
# Non-interactive entry point used by the web admin (Python) after any
|
||||
# device/room change — regenerates extensions.conf's [intercom] context
|
||||
# and reloads it. Without this, PJSIP endpoints register fine but calls
|
||||
# between them fail with "extension not found" since nothing else ever
|
||||
# rebuilds the dialplan after the initial container boot.
|
||||
if [[ "${1:-}" == "--rebuild-dialplan" ]]; then
|
||||
rebuild_dialplan quiet
|
||||
exit 0
|
||||
fi
|
||||
|
||||
main "$@"
|
||||
|
||||
Reference in New Issue
Block a user