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
|
sleep 1
|
||||||
done
|
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
|
tls_ok=false
|
||||||
udp_ok=false
|
udp_ok=false
|
||||||
if asterisk -rx "pjsip show transports" 2>/dev/null | grep -q "transport-tls"; then
|
for i in $(seq 1 10); do
|
||||||
tls_ok=true
|
transports_output=$(asterisk -rx "pjsip show transports" 2>/dev/null)
|
||||||
fi
|
echo "$transports_output" | grep -q "transport-tls" && tls_ok=true
|
||||||
if asterisk -rx "pjsip show transports" 2>/dev/null | grep -q "transport-udp"; then
|
echo "$transports_output" | grep -q "transport-udp" && udp_ok=true
|
||||||
udp_ok=true
|
$tls_ok && $udp_ok && break
|
||||||
fi
|
sleep 1
|
||||||
|
done
|
||||||
|
|
||||||
# Check if port 5061 is actually bound
|
# Check if port 5061 is actually bound
|
||||||
tls_listen=""
|
tls_listen=""
|
||||||
|
|||||||
+14
@@ -4340,6 +4340,7 @@ def delete_device(extension):
|
|||||||
with open(PJSIP_CONF, 'w') as f:
|
with open(PJSIP_CONF, 'w') as f:
|
||||||
f.writelines(new_lines)
|
f.writelines(new_lines)
|
||||||
subprocess.run(['asterisk', '-rx', 'pjsip reload'], capture_output=True)
|
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 True, "Device deleted"
|
||||||
return False, "Device not found"
|
return False, "Device not found"
|
||||||
|
|
||||||
@@ -4413,6 +4414,7 @@ def rename_device(extension, new_name):
|
|||||||
with open(PJSIP_CONF, 'w') as f:
|
with open(PJSIP_CONF, 'w') as f:
|
||||||
f.writelines(new_lines)
|
f.writelines(new_lines)
|
||||||
subprocess.run(['asterisk', '-rx', 'pjsip reload'], capture_output=True)
|
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 True, "Device renamed"
|
||||||
return False, "Device not found"
|
return False, "Device not found"
|
||||||
|
|
||||||
@@ -4525,6 +4527,7 @@ def change_device_category(extension, new_category):
|
|||||||
with open(PJSIP_CONF, 'w') as f:
|
with open(PJSIP_CONF, 'w') as f:
|
||||||
f.writelines(new_lines)
|
f.writelines(new_lines)
|
||||||
subprocess.run(['asterisk', '-rx', 'pjsip reload'], capture_output=True)
|
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 True, "Category changed"
|
||||||
return False, "Device not found"
|
return False, "Device not found"
|
||||||
|
|
||||||
@@ -4774,6 +4777,7 @@ qualify_frequency=30
|
|||||||
|
|
||||||
subprocess.run(['asterisk', '-rx', 'pjsip reload'], capture_output=True)
|
subprocess.run(['asterisk', '-rx', 'pjsip reload'], capture_output=True)
|
||||||
subprocess.run(['chown', 'asterisk:asterisk', PJSIP_CONF], 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}
|
return True, {'extension': extension, 'password': password, 'name': name}
|
||||||
|
|
||||||
@@ -6926,4 +6930,14 @@ main() {
|
|||||||
show_main_menu
|
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 "$@"
|
main "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user