Из браузера запрос приходит в один скрипт, а запрос из asterisk'а - в другой. Даже если это один файл, на каждый запрос запускается его отдельная копия. Каждый скрипт, соответственно, отвечает тому, кто послал запрос.
Вариантов решения несколько.
1. Websocket. Пишется отдельный сервер, который слушает события Asterisk (AMI/ARI) и рассылает сообщения подключенным клиентам.
2. LongPull. Клиент делает долгий запрос. Asterisk вызывает скрипт, меняющий состояние. Скрипт с запросом от клиента обнаруживает изменение состояния и отвечает клиенту.
3. Периодический опрос. Asterisk вызывает скрипт, меняющий состояние, клиент периодически вызывает скрипт, возвращающий текущее состояние.