President Gustavo Petro has sought to call a referendum, in a move opposition say violates the constitution.