Я полагаю, что это может произойти, потому что один входящий голосовой вызов вызовет оба ваших оператора $ estd if.
Согласно документации Twilio (https://www.twilio.com/docs/voice/client/javascript/connection#status), входящий вызов сначала будет иметь статус ожидающий, а затем статус открытый. Если ваш statuscallbackURL установлен на время изменения статуса, вы можете вызывать свой код хранения записей более одного раза. В зависимости от того, как у вас есть SQL, вы можете каждый раз вставлять новые записи.
Способ предотвращения двойной записи - сохранить SID ресурса для вызова в вашей базе данных и insert on duplicate key
или * 1009. * чтобы предотвратить создание новых записей.
В качестве альтернативы, если отображаемый фрагмент кода взят из записи. php, когда вы совершаете исходящий вызов с использованием Twiml, вы используете callbackURL для вызова записи. php - при которой время, когда вы можете создавать новую запись в вашей базе данных (так как этот вызов будет иметь свой собственный уникальный SID). Если вы хотите присоединить ее к текущей записи, вам нужно будет создать другой callbackURL для исходящих наборов, сделанных из этого сценария.
(Но из предоставленных вами данных трудно понять, какой код вызывается когда).